Fractal Techware

Alert runbooks /

AlertmanagerFailedReload

Alertmanager tried to load a new configuration file, rejected it, and is still running the previous one.

   
Severity critical
Source Alertmanager’s own /metrics (0.25+)
Key metric alertmanager_config_last_reload_successful (1 = last reload worked, 0 = failed)

What it means

Whenever the config file changes and a reload is triggered (SIGHUP, POST /-/reload, or a config-reloader sidecar), Alertmanager parses and validates it. If validation fails, the gauge drops to 0 and the old config stays active. The alert fires when that state persists rather than clearing on the next successful reload.

Nothing is broken yet, which is exactly the danger: the routes, receivers or inhibition rules you just shipped are not live, and the next restart of the pod may fail to start at all because the bad file is still on disk.

Common causes

First checks

  1. Confirm which instances are affected:
    alertmanager_config_last_reload_successful == 0
    
  2. Read the actual error from the logs:
    kubectl -n monitoring logs <alertmanager-pod> -c alertmanager | grep -i "loading configuration"
    
  3. Validate the file that is on disk, not the one in your repo:
    kubectl -n monitoring exec <alertmanager-pod> -c alertmanager -- \
      amtool check-config /etc/alertmanager/config_out/alertmanager.env.yaml
    

    Adjust the path to wherever your deployment mounts the config. Locally, amtool check-config alertmanager.yml does the same.

  4. If you use the operator, check the reloader sidecar logs and the status of your AlertmanagerConfig objects.

Fixing it

Correct the error reported by amtool check-config, redeploy, and trigger a reload (curl -X POST http://<alertmanager>:9093/-/reload). Confirm the gauge returns to 1 on every replica. Add amtool check-config to CI so a bad file never reaches the cluster.