Helm prevents reusing a release name that is still being tracked, even if the resources are deleted.
Helm maintains release metadata independent of actual resources. Deleting resources from the cluster doesn't remove the release from Helm's tracking. To reuse a name, you must either fully delete the release or use a different name.
Check if release is tracked by Helm:
helm list -n NAMESPACE
helm history RELEASE_NAME -n NAMESPACEFully remove the release:
helm delete RELEASE_NAME -n NAMESPACEVerify it's gone:
helm list -n NAMESPACEThere may be a grace period for deletion:
sleep 10
helm list -n NAMESPACEEnsure release no longer appears.
Now you can reuse the name:
helm install RELEASE_NAME CHART_NAME -n NAMESPACE --create-namespaceAlways use helm delete to remove releases—never manually delete resources. For production, use GitOps tools that manage releases declaratively (ArgoCD, Flux). Keep release names stable; use the same name across deployments. Consider using namespaces to isolate release names. Monitor release state with monitoring/alerting on helm list output.
Service port already allocated
How to fix "Service port already allocated" in Kubernetes
minimum cpu usage per Container
How to fix "minimum cpu usage per Container" in Kubernetes
Failed to connect to server: connection refused (HTTP/2)
How to fix "HTTP/2 connection refused" error in Kubernetes
For CI/CD, use unique release names:
helm install RELEASE_NAME-${BUILD_ID} CHART_NAMEOr use helm upgrade --install for idempotency:
helm upgrade --install RELEASE_NAME CHART_NAME