CI/CD3 min read· 3 practice problems

When the CI cache restores the wrong dependency graph

An InfraTree guide that lays out the first signals to check, the CLI verification order, common misdiagnoses, and a safe recovery path when package.json, the lockfile, and artifacts no longer agree even after a cache hit.

On this page
  1. Typical symptom
  2. Signals to check first
  3. Logs and CLI examples
  4. Common misdiagnoses
  5. Safe recovery order
  6. Prevention
  7. Related InfraTree problems

Typical symptom

When the CI cache restores the wrong dependency graph is rarely a single wrong setting — it usually appears when the deploy boundary, runtime state, cache, permissions, and network path drift together. Users arriving from search should first narrow the symptom, using this guide's search intent — For users searching for the case where package.json, the lockfile, and artifacts no longer agree even after a cache hit, this lays out the order in which to check logs and CLI output. — as the basis for the first signals to check.

Early on, rather than attempting a full rollback or a blind restart, check which node, Pod, job, user, or path the blast radius is tied to. If the scope is narrow, compare recent changes against the healthy state; if it is wide, start from the shared dependencies.

Signals to check first

The first thing to look at is not the last error line but the boundary where the same failure recurs. Grouping the problem around signals like cache hit but wrong deps, lockfile changed stale cache, partial restore mismatch narrows the root-cause candidates even when the logs are long.

  • First check at which boundary the cache hit but wrong deps signal keeps recurring.
  • Separate recent changes, the healthy baseline, and blast radius, then compare whether the same symptom appears across all targets.
  • Compare `git diff -- package.json package-lock.json` output against a healthy resource.
  • Before recovery, hold off on hard-to-reverse actions like rollback, restart, or cache delete.
  • Pin the root-cause candidate in one line, then record prevention items.

Logs and CLI examples

The commands below don't hand you the answer directly; they are the first observation points for narrowing the cause. Comparing their output against a known-good point in time or a healthy resource with the same role cuts down time spent just retrying.

gh run view <run-id> --log
git diff --name-only <previous>..<current>

Common misdiagnoses

The most dangerous pattern in operational incidents is mistaking the symptom name for the cause. The same timeout, permission denied, or rollout failure can have its real cause in a different layer — cache, permission inheritance, Secret scope, stale client connections, or proxy headers.

  • Treating the symptom name as the cause and skipping the cache, permission, network, and auth boundaries.
  • Not defining the healthy baseline and blast radius before collecting more logs.
  • Jumping to big actions like restart, rollback, or policy relaxation without verification.

Safe recovery order

Recovery starts at the smallest unit. First pin the current state with read-only checks, then verify changes on a limited-impact resource. Hard-to-reverse actions like a full service restart, clearing the entire cache, or relaxing security policy should be chosen only after the root-cause candidates are narrowed.

  • For CI/CD incidents, looking at the boundary where failures recur — rather than the last error line — narrows the root-cause candidates fast.
  • Don't read command output in isolation; compare it against a known-good point in time or a healthy resource with the same role.
  • For recovery, it's safer to verify on a limited-impact target first and then widen, rather than restarting everything.
  • After an incident, record not just the cause but why detection was slow and which automation was missing.

Prevention

After an incident ends, record "why that state lingered" rather than just a one-line cause. Check whether there was a gap between automation and operational procedure — in the deploy pipeline, runtime reload, permission inheritance, certificate renewal, or network policy.

Following the related hubs and problems lets you re-diagnose the same symptom in other environments.

Related InfraTree problems

The problems below are public exercises for practicing this guide as real scenarios. Solving them after reading lets you practice splitting signals first and writing out the recovery direction as sentences.

Practice with this guide

Reviewed problems about the same failure. Write the cause, recovery, and prevention yourself, then compare with the model answer.

Read next