Skip to main content
All of the catalog
Injectable fault

Bad deploy: image that doesn't exist

A release went out referencing an image tag that was never pushed. The rollout is stuck — new pods sit in ImagePullBackOff while the old version keeps serving.

WorkloadMedium severitygo-api/go-api
Definition on GitHub

What the symptom looks like

A release went out referencing an image tag that was never pushed. The rollout is stuck — new pods sit in ImagePullBackOff while the old version keeps serving.

Affects go-api.

The hint ladder

Each hint narrows the search a little further. They are collapsed on purpose — open one only when you are properly stuck, because working out the next command yourself is the whole exercise.

Hint 1

The deploy "went out" but nothing changed for users. Check the state of the rollout: `kubectl rollout status deploy/go-api -n go-api`. Is it actually finished? Then look at the pods.

Hint 2

A pod stuck in `ImagePullBackOff` or `ErrImagePull` can't even download its container. `kubectl describe pod -n go-api <pod>` — the Events section tells you exactly which image the kubelet tried to pull and why it failed.

Hint 3

Compare the image on the Deployment (`kubectl get deploy go-api -n go-api -o jsonpath='{.spec.template.spec.containers[0].image}'`) with what's actually available. Fix the tag with `kubectl set image` (the previously working image is recorded on the deployment's annotations), or roll back with `kubectl rollout undo`.

The incident field notes

One real Kubernetes failure a week — the symptom, the commands that found it, and the fix. Written from actual lab runs, not from memory.

You'll get the Kubernetes Incident Response Field Guide, plus occasional emails about new scenarios, posts and paid offerings such as courses and workshops. Unsubscribe any time.