ImagePullBackOff
KubernetesERRORCommonPod LifecycleHIGH confidence

Failed to pull container image with backoff

What this means

Kubernetes cannot pull the specified container image from the registry. The kubelet will keep retrying with an increasing backoff delay, which is what distinguishes this from ErrImagePull.

Why it happens
  1. 1Invalid image name or tag in the pod specification
  2. 2Registry requires authentication, but credentials are not provided or are incorrect
  3. 3Network policies are blocking the node from accessing the image registry
  4. 4The specified image does not exist in the registry
How to reproduce

A pod deployment fails, and describing the pod shows the ImagePullBackOff status in the events section.

trigger — this will error
trigger — this will error
kubectl describe pod my-app-pod

expected output

Events:
  Type     Reason         Age                From               Message
  ----     ------         ----               ----               -------
  Warning  Failed         2m (x4 over 3m)    kubelet            Failed to pull image "my-repo/my-app:1.2.4": rpc error: code = Unknown desc = Not Found
  Normal   BackOff        1m (x7 over 3m)    kubelet            Back-off pulling image "my-repo/my-app:1.2.4"
  Warning  Failed         1m (x7 over 3m)    kubelet            Error: ImagePullBackOff

Fix 1

Verify the image name and tag

WHEN When the image name or tag might be misspelled or non-existent

Verify the image name and tag
kubectl describe pod my-app-pod | grep Image:

Why this works

This command extracts the exact image URI Kubernetes is trying to pull, which can be manually checked against the registry.

Fix 2

Check image pull secrets

WHEN When pulling from a private registry that requires authentication

Check image pull secrets
kubectl get pod my-app-pod -o yaml | grep imagePullSecrets

Why this works

This verifies that an imagePullSecrets entry is present in the pod spec and that it references a valid registry credential secret.

What not to do

Manually pull the image on the node using docker pull

This does not solve the configuration issue for the cluster and will not work if the pod is rescheduled to a different node.

Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev

← All Kubernetes errors