Fix Helm 'Another Operation in Progress' Error
The Error: "another operation in progress"
You try to upgrade or install a Helm release and get:
Error: UPGRADE FAILED: another operation (install/upgrade/rollback) is in progress
Helm refuses to do anything with this release. You're stuck.
Root Cause
Helm stores release state as Kubernetes Secrets (or ConfigMaps in older versions). When a Helm operation is interrupted -- by a CI/CD timeout, a killed terminal session, or a crashed Helm process -- the release gets stuck in a pending-install, pending-upgrade, or pending-rollback state. Helm won't proceed because it thinks a previous operation is still running.
Step-by-Step Fix
1. Check the Current Release Status
helm list -n your-namespace --all
Look for releases with status pending-install, pending-upgrade, or pending-rollback:
NAME NAMESPACE REVISION STATUS CHART
my-app production 5 pending-upgrade my-app-1.2.0
2. Check Release History
helm history my-app -n your-namespace
REVISION STATUS CHART DESCRIPTION
3 superseded my-app-1.0.0 Upgrade complete
4 deployed my-app-1.1.0 Upgrade complete
5 pending-upgrade my-app-1.2.0 Preparing upgrade
3. Roll Back to the Last Successful Revision
The safest fix is to roll back to the last deployed revision:
helm rollback my-app 4 -n your-namespace
This sets the release back to revision 4 (deployed status) and creates a new revision 6 with deployed status.
4. If Rollback Also Fails
If rollback fails too, you need to manually patch the release secret:
# Find the stuck release secret
kubectl get secrets -n your-namespace -l "owner=helm,name=my-app" --sort-by=.metadata.creationTimestamp
# The latest secret will have the pending status
# Delete it to remove the stuck state
kubectl delete secret sh.helm.release.v1.my-app.v5 -n your-namespace
After deleting the stuck secret, the previous successful revision becomes the current one:
helm list -n your-namespace
# Should now show status: deployed (revision 4)
5. If It's a Stuck pending-install (First Install)
When the very first install gets stuck, there's no previous revision to roll back to:
# Uninstall the failed release entirely
helm uninstall my-app -n your-namespace
# If uninstall fails, force it
helm uninstall my-app -n your-namespace --no-hooks
# Clean up any leftover resources
kubectl delete all -l app.kubernetes.io/instance=my-app -n your-namespace
# Now install fresh
helm install my-app ./my-chart -n your-namespace -f values.yaml
6. Verify the Fix
helm list -n your-namespace
# STATUS should be "deployed"
helm status my-app -n your-namespace
# Should show all resources and their states
Prevention Tips
- Set timeouts on Helm operations in CI/CD:
helm upgrade --timeout 10m0s. This lets Helm clean up properly instead of being killed mid-operation. - Use
--waitflag so Helm tracks the deployment status:helm upgrade --install --wait --timeout 5m0s. - Use
--atomicflag to auto-rollback on failure:helm upgrade --install --atomic --timeout 5m0s. This prevents stuck states entirely. - Never kill Helm processes manually. If a deploy is taking too long, let it timeout gracefully.
- Use
helm diffbefore upgrades to catch issues before they happen:helm diff upgrade my-app ./chart -f values.yaml.
Was this article helpful?
SRE & Observability Engineer
If it's not measured, it doesn't exist. SLO-driven, metrics-obsessed, and the person who gets paged at 3 AM so you don't have to. Observability isn't optional.
Related Articles
Helm Error: Release Has No Deployed Revisions - How To Recover Failed Installations
If you've been working with Helm for any length of time, you've probably encountered this frustrating error: "Error: release has no deployed revisions." It...
Helm Error: Repository Name Already Exists - Complete Fix Guide For Duplicate Repo Names
If you've been working with Helm for more than five minutes, you've probably encountered this frustrating error: "repository name already exists". It's one...
Fix Helm 'UPGRADE FAILED: has no deployed releases'
Fix the Helm 'UPGRADE FAILED: has no deployed releases' error when a previous install failed and left the release in a broken state.
Helm Chart Best Practices: Structure, Versioning, and Templating
Practical Helm chart best practices covering directory structure, versioning strategies, and templating patterns for production-grade charts.
Helm Hooks and Chart Tests: Lifecycle Management Done Right
Learn how to use Helm hooks for database migrations and pre-deploy tasks, and chart tests to validate releases in Kubernetes.
Helmfile: Manage Multiple Helm Releases Like a Pro
Use Helmfile to declaratively manage multiple Helm releases across environments, with layered values, dependencies, and GitOps-friendly workflows.