Helm Release Stuck in 'pending-upgrade'

A failed upgrade left the release in limbo and Helm refuses to continue. The fix is rollback or recovery — never delete and re-create blindly.

What you'll see

Root causes

Interrupted upgrade

CI pipeline cancelled mid-upgrade, or the upgrade failed in a way that left the release history marked in-progress.

Concurrent pipeline runs

Two CD jobs raced; the second one is blocked forever by the first's stale lock.

Fix it

  1. See the release history and current revision
    helm history <release> -n <namespace>
  2. Roll back to the last good revision
    helm rollback <release> <good-revision> -n <namespace>
  3. Make upgrades atomic so this can't happen again
    helm upgrade <release> ./chart --atomic --timeout 10m

Field note

--atomic auto-rolls-back on failure, which is the difference between a 2-minute blip and a stuck release at 3 AM. If rollback is impossible because the release is brand new, helm uninstall + reinstall is the last resort — with a stateful chart, snapshot first.

Common questions

Why is my Helm release stuck in pending-upgrade?

A previous upgrade was interrupted (ctrl-c, CI timeout, crashed runner) and left a lock. Helm's release state lives in secrets per release: the pending state blocks the next operation.

How do I fix it?

helm rollback <release> or helm history to inspect; for stubborn cases use helm uninstall + reinstall (the release's manifests are usually in git/CI anyway). For Helm 2, helm rollback with a stored state or remove the stale configmap — Helm 3's secret-based state made interrupted upgrades less frequent.

Ship it right the first time

Kustomize base with probes, PDBs, and zero-downtime rollouts already wired.

Kubernetes Production Blueprints — $27 →

One-time. Yours to modify. Instant download from the NinjaOps template store.