Ran helm upgrade my-app ./chart and got:
Error: UPGRADE FAILED: release: not found
The release 100% existed — I could see it in the Kubernetes cluster. Ran helm list and got nothing.
Root cause:
Helm stores release metadata as Kubernetes Secrets in the namespace the release was deployed to. helm list without -n only shows releases in the default namespace.
My release was in the production namespace.
helm list -n production
# NAME NAMESPACE REVISION STATUS CHART APP VERSION
# my-app production 5 deployed my-app-1.2.0 2.1.0There it was.
Fix:
# Always specify namespace
helm upgrade my-app ./chart -n production
# Or to see releases across all namespaces
helm list -APrevention:
Set a default namespace context in kubectl:
kubectl config set-context --current --namespace=productionNow all kubectl AND helm commands default to production namespace. No more -n production needed everywhere (until you switch namespaces).
Lesson: Helm is namespace-scoped. helm list without -n shows only the default namespace. Always specify -n namespace or use -A to see all. This trips up almost everyone at some point.