Skip to content
Latchkey

Helm "found in Chart.yaml, but missing in charts/ directory" - Fix Dependencies in CI

A chart’s Chart.yaml declares dependencies, but the charts/ directory does not contain them. Helm will not pull subcharts implicitly at install time - you must run helm dependency build/update first, which CI often skips.

What this error means

helm install/upgrade/template fails with found in Chart.yaml, but missing in charts/ directory: <dep> or no cached repo found ... (try helm repo update). The dependencies were declared but never vendored into charts/.

helm output
Error: found in Chart.yaml, but missing in charts/ directory: postgresql, redis

Diagnose it: render the chart before you install it

Most Helm failures are visible in the rendered manifests. Template them locally with the same values CI uses and you will usually see the problem without touching the cluster.

Terminal
# what will actually be applied
helm template <release> <chart> -f values.ci.yaml | head -60

# validate against the live cluster schema without installing
helm install <release> <chart> -f values.ci.yaml --dry-run --debug

# what state is the release actually in?
helm history <release>
helm status <release>

Common causes

Dependencies never built/vendored

A fresh checkout has Chart.yaml deps but an empty charts/ (the subcharts and Chart.lock were not committed), and CI did not run helm dependency build.

Dependency repo not added

A dependency points at a repo Helm has not added/updated locally, so it cannot resolve or cache it (no cached repo found).

How to fix it

Build dependencies before install

Run helm dependency build (from Chart.lock) or update to populate charts/ before any install/upgrade/template.

Terminal
helm dependency build ./chart    # uses Chart.lock if present
# or, to re-resolve and refresh the lock:
helm dependency update ./chart
helm template ./chart

Add the dependency repos first

  1. Add and update each dependency’s repo (helm repo add <name> <url> && helm repo update).
  2. Commit Chart.lock so helm dependency build is reproducible in CI.
  3. Order the pipeline so dependency build runs before install/upgrade/template.

How to prevent it

  • Run helm dependency build as an explicit early CI step.
  • Commit Chart.lock so dependency versions are pinned and reproducible.
  • Add required chart repos before resolving dependencies.

Frequently asked questions

What causes Helm "found in Chart.yaml, but missing in charts/ directory"?
There are 2 common causes: dependencies never built/vendored and dependency repo not added. A fresh checkout has Chart.yaml deps but an empty charts/ (the subcharts and Chart.lock were not committed), and CI did not run helm dependency build.
How do I fix Helm "found in Chart.yaml, but missing in charts/ directory"?
There are 2 fixes depending on which cause you have: build dependencies before install and add the dependency repos first. Work through them in order, since the first is the most common.
What does Helm "found in Chart.yaml, but missing in charts/ directory" actually mean?
helm install/upgrade/template fails with found in Chart.yaml, but missing in charts/ directory: <dep> or no cached repo found ...
How do I stop Helm "found in Chart.yaml, but missing in charts/ directory" happening again?
Run helm dependency build as an explicit early CI step. The prevention section lists 3 changes that keep it from recurring.

Related guides

References

Not every red build is your code. Latchkey repairs the ones that are not, on the runner. Start free → 30-day trial · No credit card