Helm Error: UPGRADE FAILED - Another Operation in Progress

When working with Helm in Kubernetes, you might encounter the following error:

Error: UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress

This usually happens when a Helm release is already in the middle of an action, but another upgrade or rollback is triggered.

Common Pending States

Helm releases can get stuck in several states:

  • pending-install — Helm started installing, but something went wrong before it finished.
  • pending-upgrade — Helm tried to upgrade, but the process didn’t complete.
  • pending-rollback — A rollback started but got stuck in the middle.

These states prevent you from running another helm upgrade or helm rollback.

Why Does It Happen?

  • A previous Helm command was interrupted (e.g., Ctrl+C).
  • The cluster was under heavy load and timed out.
  • A hook or pre-install/pre-upgrade job failed.
  • Multiple admins or CI/CD jobs tried to upgrade the same release at the same time.

How to Fix It

Check release status:

helm status my-release -n my-namespace

If it’s stuck, clean it up by manually marking the release failed:

kubectl get secrets -n my-namespace | grep my-release

Find the latest revision and delete it:

kubectl delete secret sh.helm.release.v1.my-release.vX -n my-namespace

Retry the operation:

helm upgrade --install my-release ./chart -n my-namespac

Best Practices to Avoid This

  • Use a CI/CD pipeline with locking to prevent concurrent upgrades.
  • Avoid manually interrupting Helm commands.
  • Monitor Helm hooks and jobs carefully.
  • Set proper timeouts with –timeout in long-running upgrades.

Conclusion

With these tips, you’ll know why Helm gets stuck in pending-* states and how to recover safely.