Multiple receivers hide other errors in configuration

Author: SoloJacobsCreated Feb 10, 2026Updated Sep 1, 2026

What did you do?

 ./amtool check-config config/testdata/conf.multi-bad-receivers.yml
Checking 'config/testdata/conf.multi-bad-receivers.yml'  FAILED: no global SMTP from set

What did you expect to see?

Errors from all three receivers.

What did you see instead? Under which circumstances?

Only a single error.

System information

No response

Alertmanager version

Alertmanager configuration file

yaml
global:
  resolve_timeout: 5m

receivers:
  # RECEIVER 1: Perfectly valid
  - name: 'team-alpha-webhook'
    webhook_configs:
      - url: 'https://webhook.alpha.com/alerts'

  # RECEIVER 2: Broken Email Config (The "Independent Loading" Issue)
  - name: 'team-beta-email'
    email_configs:
      - to: '[email protected]'
        # ERROR A: Mandatory field 'from' is missing (if not in global)
        # ERROR B: Invalid smarthost port
        smarthost: 'smtp.example.com:not-a-number' 

  # RECEIVER 3: Broken PagerDuty Config (The "Early Return" Issue)
  - name: 'team-gamma-pagerduty'
    pagerduty_configs:
      - service_key: '' # ERROR C: Required field empty
        # If the code returns early at ERROR C, it never sees ERROR D below
        routing_key: 'invalid-key-format-123' # ERROR D: Validation logic

route:
  group_by: ['alertname']
  receiver: 'team-alpha-webhook'
  routes:
    - match:
        team: 'beta'
      receiver: 'team-beta-email'

Prometheus version

Prometheus configuration file

yaml

Logs