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.