Receiver checks
duplicate-receiver
Level: error
Two receivers share the same name. Alertmanager uses the first definition and silently ignores the second, which is almost never intentional.
empty-receiver
Level: warn (info for the default receiver or one named like null)
A receiver has no integration configured — no slack_configs, pagerduty_configs, webhook_configs, etc. Alerts routed here will be silently dropped.
Using an empty receiver as the default (to blackhole low-priority alerts) is intentional and triggers info instead of warn. So does a receiver named null, blackhole, devnull, dev-null, discard or drop — the conventional names for a deliberate drop (kube-prometheus sends Watchdog and InfoInhibitor to null).
email-no-smarthost
Level: error
An email_configs entry has no smarthost and global.smtp_smarthost is not set. Alertmanager cannot send emails without knowing the SMTP server address.
webhook-no-url
Level: error
A webhook_configs entry has no url or url_file. Alertmanager cannot deliver alerts without a target URL — they fail silently.
pagerduty-no-routing-key
Level: error
A pagerduty_configs entry has no routing_key or routing_key_file. PagerDuty requires an integration key to accept events.
slack-no-api-url
Level: error
A slack_configs entry has no api_url or api_url_file, and global.slack_api_url is not set. Slack requires an incoming webhook URL to receive messages.
opsgenie-no-api-key
Level: error
An opsgenie_configs entry has no api_key or api_key_file, and global.opsgenie_api_key is not set. OpsGenie requires an API key to accept alerts.
msteams-no-webhook-url
Level: error
An msteams_configs entry has no webhook_url or webhook_url_file. MS Teams requires an incoming webhook URL to receive messages.
telegram-no-bot-token
Level: error
A telegram_configs entry has no bot_token or bot_token_file. Telegram requires a bot token to authenticate with the Bot API.
discord-no-webhook-url
Level: error
A discord_configs entry has no webhook_url or webhook_url_file. Discord requires an incoming webhook URL to post messages to a channel.
victorops-no-api-key
Level: error
A victorops_configs entry has no api_key, and global.victorops_api_key is not set. VictorOps requires an API key to accept alerts.
wechat-no-corp-id
Level: error
A wechat_configs entry has no corp_id, and global.wechat_api_corp_id is not set. WeChat Work requires a corp_id to identify the enterprise account.
sns-no-target
Level: error
An sns_configs entry has none of topic_arn, phone_number, or target_arn set. SNS requires exactly one destination — a topic ARN, a phone number for SMS, or a mobile platform endpoint ARN.
template-file-missing
Level: error (warn for globs)
A relative path in templates: matches no file. Alertmanager resolves relative template paths against the config file's directory and starts even when one matches nothing — it just loads no templates from it, so notifications that use them fail to render.
This check only runs when linting a file (not stdin). Absolute paths (e.g. /etc/alertmanager/templates/*.tmpl) point into the Alertmanager host or container rather than wherever amlint runs, so they aren't checked.
unused-receiver
Level: info
A receiver is defined but never referenced by any route. It may be leftover from a previous config version.