Routing checks
undefined-receiver
Level: error
A route references a receiver that is not defined in receivers:. Alerts matched by this route will be silently dropped.
no-root-route
Level: error
The config has no root route at all. Alertmanager will refuse to start.
bad-regex
Level: error
A match_re or matchers entry contains a regex that fails to compile. The route will never match anything.
unreachable-route
Level: warn
A catch-all route (no match, match_re, or matchers) with continue: false appears before sibling routes. All subsequent siblings are unreachable — they will never receive alerts.
groupby-ellipsis
Level: warn
group_by contains ... (group by all labels) alongside explicit labels. The explicit labels are redundant — ... already includes everything.
useless-continue
Level: info
A route has continue: true but it is the last sibling — there are no subsequent routes to continue to, so the flag has no effect.
route-match-collision
Level: warn
Two sibling routes have identical matchers. Alertmanager evaluates siblings in order and stops at the first match — the second route with the same matchers will never receive any alerts.
deep-nesting
Level: info
The routing tree is more than 5 levels deep. Very deeply nested configs are hard to read, debug, and maintain.
Tip
Consider flattening the routing tree using matchers with multiple conditions instead of nested routes.