🎉 DevOps Interview Prep Bundle is live — 1000+ Q&A across 20 topicsGet it →
All Articles

Helm Chart Not Found / Repository Error — Step-by-Step Fix

Fixing Helm errors like 'Error: chart not found', 'repository not found', and 'failed to fetch' when running helm install or helm upgrade. Covers outdated repo index, auth issues, and OCI registry problems.

Shubham4 min read
Share:Tweet

Helm errors around chart repositories are among the most frustrating because they're rarely about your chart itself — they're about the local state of your Helm repository cache, authentication, or a URL that quietly changed.

Here's a systematic fix for the most common ones.

Error 1: "Error: chart not found"

Error: chart "nginx-ingress" not found in nginx-stable repository

This almost always means one of two things: the repo index is stale or you're using the wrong chart name.

Fix: Update your repo index first

bash
helm repo update

This is the single most commonly skipped step. Helm caches the repository index locally, and if the chart was published after your last update, Helm won't find it.

After updating, search for the chart to confirm the exact name:

bash
helm search repo nginx

Chart names are case-sensitive and change between chart releases. What was nginx-ingress might now be ingress-nginx depending on which repo you're pulling from.

Error 2: "Repository Not Found"

Error: no repository named "myrepo" found

You're trying to install from a repo you haven't added to Helm.

Fix: Add the repository

bash
# Add the repo
helm repo add myrepo https://charts.example.com
 
# Verify it was added
helm repo list
 
# Update and search
helm repo update
helm search repo myrepo/

If you're on a new machine or a fresh CI runner, you'll need to add repos before they're available. In CI/CD pipelines, always add repos explicitly rather than assuming they're cached.

Error 3: "Failed to Fetch" or "Connection Refused"

Error: failed to fetch https://charts.example.com/index.yaml
: failed to fetch

Network issue, wrong URL, or the repository server is down.

Debug steps:

bash
# Test if the URL is reachable
curl -v https://charts.example.com/index.yaml
 
# Check if it's a TLS issue
curl --insecure https://charts.example.com/index.yaml
 
# Check if DNS resolves
nslookup charts.example.com

If the URL has changed (common after maintainer migrations), look for the new URL in the chart's GitHub repository or docs.

Temporarily skip TLS verification (debugging only):

bash
helm repo add myrepo https://charts.example.com --insecure-skip-tls-verify

Don't use this in production — fix the TLS issue instead.

Error 4: Authentication Errors (Private Repos)

Error: failed to fetch https://private-charts.example.com/index.yaml
: 401 Unauthorized

Fix: Add credentials when adding the repo

bash
helm repo add private-repo https://private-charts.example.com \
  --username myuser \
  --password mypassword

For GitHub Pages-hosted private charts or Artifactory:

bash
# Artifactory
helm repo add myrepo https://mycompany.jfrog.io/artifactory/helm \
  --username $JFROG_USER \
  --password $JFROG_TOKEN
 
# GitHub Packages (GHCR)
echo $GITHUB_TOKEN | helm registry login ghcr.io \
  --username $GITHUB_USERNAME \
  --password-stdin

Store credentials in CI/CD as secrets, never hardcode them.

Error 5: OCI Registry Errors

Modern Helm charts are sometimes stored in OCI registries (like GHCR or ECR) instead of traditional chart repositories. The commands are different.

Error: failed to fetch oci://ghcr.io/myorg/charts/mychart

For OCI-based charts:

bash
# Login to the OCI registry first
echo $GITHUB_TOKEN | helm registry login ghcr.io \
  --username $GITHUB_USERNAME \
  --password-stdin
 
# Install directly from OCI (no `helm repo add` needed)
helm install myapp oci://ghcr.io/myorg/charts/mychart --version 1.2.3
 
# Or pull first then inspect
helm pull oci://ghcr.io/myorg/charts/mychart --version 1.2.3

OCI-based Helm charts don't work with helm repo add. You interact with them directly via oci:// URLs.

Error 6: "Index is Corrupt" or Checksum Mismatch

Error: repo "bitnami" index file corrupt: unexpected end of JSON input

The local cached index is corrupted. Clear it:

bash
# Remove cached repo data
rm -rf $(helm env HELM_REPOSITORY_CACHE)
 
# Re-add and update repos
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update

Pro Tips to Avoid These Errors

In CI/CD pipelines, always add repos explicitly:

yaml
- name: Add Helm repos
  run: |
    helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
    helm repo add cert-manager https://charts.jetstack.io
    helm repo add bitnami https://charts.bitnami.com/bitnami
    helm repo update

Pin chart versions in production:

bash
# Avoid latest (breaks when chart authors release updates)
helm install myapp myrepo/mychart --version 4.2.1

Check what version is actually available:

bash
helm search repo myrepo/mychart --versions | head -20

Verify chart before installing:

bash
helm show chart myrepo/mychart --version 4.2.1
helm show values myrepo/mychart --version 4.2.1

Most Helm repository errors come down to one of: stale cache, missing repo add, wrong URL, or missing authentication. Run through these in order and you'll find the issue within a few minutes.


More Helm debugging? Check out our guides on Helm values not updating fix and Helm upgrade failed another operation in progress.

🔧

Today I Fixed

Short real fixes from production — posted daily

Browse fixes
Newsletter

Stay ahead of the curve

Get the latest DevOps, Kubernetes, AWS, and AI/ML guides delivered straight to your inbox. No spam — just practical engineering content.

Related Articles

Comments