MusterDestinationBroken¶
Meaning¶
A Destination is Broken: Muster stopped sending to it after a Fatal error — the messenger refused the bot or the
request for good — or after its Transient budget ran out (delivery.transient_budget, 10 attempts within 30
minutes). Muster then probes it every delivery.broken_probe_interval (5 minutes) with the oldest waiting delivery,
or with the Destination check when nothing waits, and ends the Broken state on the first success.
This alert has two sources with the same name, severity critical and this page:
- The Internal alert, raised by Muster itself as an Alert of the built-in "Muster" Integration when the
Destination becomes Broken, with the labels
destination(the Destination's id) anddestination_name. It is resolved when a probe, the Destination check or a test message succeeds, and when the Destination is deleted. -
The chart rule, the backup for when Muster cannot deliver the Internal alert:
max by (destination) (muster_destination_broken{job="muster"}) == 1It fires after 5 minutes with the label
destination.muster_destination_brokenis set by the Leader.
Route it around Muster
Send the chart rule through an Alertmanager route that bypasses Muster. Route the Internal alert to a Destination
of another kind than the Broken one — a Broken Telegram Destination usually means that Telegram is unreachable
for every Telegram Destination, so send MusterDestinationBroken of Telegram Destinations to Mattermost or an
outgoing webhook.
Impact¶
- Nothing is sent to the Destination: no new Root messages, no edits, no Thread replies. Its deliveries wait, and the Alert Groups that wait for it show a delivery problem; the Alert Group list filter Delivery problem finds them.
- Other Destinations, ingestion, Commands and timers keep working.
- When the Broken state ends, Muster brings every waiting Root message to its current state; it does not replay the changes it missed one by one.
Diagnosis¶
- Open System status (
/admin/system-status): Broken Destinations lists every Broken Destination and since when. The Destination list (/destinations) has the filter Broken Destinations too. - Open the Destination page (
/destinations/<id>). The banner says "Broken since HH:MM: {reason}. Muster tries again every {interval}." The reason is the error the messenger answered, with secrets masked. - Find the log line
destination_broken(destination,cause,reason):causeisfatalafter a Fatal error andunavailableafter the Transient budget ran out.outbound_blockedlines for the same address mean that the outbound address policy refused it. - Press Check on the Destination page to run the Destination check now, or run
muster doctor, which prints a linedestination <name>with the failing step. For a Connection problem, press Check connection on the Connection page (/connections/<id>).
Fix¶
causefatal: fix what the reason names. Typical cases are a revoked bot token (replace it on the Connection), a bot that lost its admin rights in a Telegram channel or its discussion group, a deleted channel or chat, or an outgoing webhook that answers with a permanent error. Then press Check: a check that passes ends the Broken state at once.causeunavailable: the messenger or the path to it was down long enough to use up the Transient budget. Fix the network, the proxy of the Connection or the Outbound addresses (/admin/organization/outbound); the next probe ends the Broken state by itself, or press Check to end it now.- Telegram is unreachable from your network: see Telegram in restricted networks.
- Send test message on the Destination page also ends the Broken state when every step succeeds.
- The Internal alert resolves and
destination_recovered(destination,broken_for_s) is logged when the Broken state ends; the chart rule resolves at the Leader's next update ofmuster_destination_broken.