Runbook: Helm rollback
Symptom: A Helm upgrade introduced a regression — the app is returning errors, the UI is broken, or the migration failed. You need to revert to the previous working version quickly.Diagnose
1. Check the current release status:STATUS = superseded — that was the last working state.
4. Check pod logs for the reason:
Rollback
Roll back to the previous revision:1 is the revision number from helm history.
Verify the rollback:
Database migrations after rollback
If the failed upgrade ran database migrations before crashing, the schema may now be ahead of the rolled-back binary. This is the most dangerous case. Check the current migration version:- Preferred: Roll forward — fix the issue in a new version and deploy forward. Do not roll back migrations in production unless absolutely necessary.
- Last resort — down migration: Run the down migration for the version that was applied:
This reverts the last migration. Only do this if you have a recent database backup and have tested the down migration.
Resolve
- Confirm
/readyreturns all-green - Smoke test critical paths: incidents list, alert ingestion, Slack channel creation
- Open an incident report documenting what went wrong in the failed upgrade
- Fix the root cause before attempting the upgrade again
Prevention
- Always take a database backup before a Helm upgrade:
pg_dumpbeforehelm upgrade - Use
helm upgrade --dry-runto render templates and catch obvious errors before applying - Deploy to a staging environment first and run smoke tests there
- Keep
helm history— Helm retains 10 revisions by default; rollback is always one command away
