Skip to content
Latchkey

Helm Release Stuck in "pending-upgrade" - Recover in CI

A Helm release is wedged in a pending-* status because an operation was interrupted and never reached a terminal state. Every later helm upgrade then errors that an operation is already in progress.

What this error means

helm status shows pending-upgrade/pending-install/pending-rollback, and new operations fail with "another operation in progress". The release never settles to deployed on its own.

helm output
$ helm status api -n prod
STATUS: pending-upgrade
# subsequent: Error: UPGRADE FAILED: another operation (install/upgrade/rollback)
# is in progress

Common causes

Interrupted Helm operation

A CI job timeout, cancellation, or crash killed Helm mid-operation, leaving the release record in a pending state with no rollback.

Helm process lost connectivity mid-apply

A network drop to the API server during --wait can leave the operation marked pending even though some changes applied.

How to fix it

Roll back to the last deployed revision

If a previously deployed revision exists, rolling back clears the pending state.

Terminal
helm history api -n prod
helm rollback api <last-deployed-revision> -n prod

Delete the pending release record (no good revision)

For a stuck first install with no deployed revision, remove the pending release secret, then reinstall.

Terminal
kubectl get secret -n prod -l owner=helm,name=api
kubectl delete secret -n prod \
  sh.helm.release.v1.api.v1   # the pending revision's secret
helm upgrade --install api ./chart -n prod

How to prevent it

  • Use --atomic --timeout so interrupted upgrades roll back instead of hanging.
  • Give Helm jobs generous timeouts and avoid cancelling them mid-flight.
  • Serialize releases so retries do not collide with an in-flight operation.

Frequently asked questions

What causes "release stuck pending-*"?
A CI job timeout, cancellation, or crash killed Helm mid-operation, leaving the release record in a pending state with no rollback.
How do I fix release stuck pending-*?
If a previously deployed revision exists, rolling back clears the pending state.

Related guides

References

Latchkey auto-heals failures like this one - detected, fixed, and retried without you. Start free → 30-day trial · No credit card