Image Pull Errors
Start with inspection and narrowing steps first. Some fixes in debugging pages mutate shared resources, so separate observation from recovery.
Use this page when a pod never gets to the application startup phase because Kubernetes cannot fetch its image.
The two most common causes in the Crawbl cluster are DOCR access problems and Bitnami tag unavailability.
Symptoms
kubectl get pods -n backend
Output shows:
NAME READY STATUS RESTARTS AGE
orchestrator-6f8b4c9d7-x2k4p 0/1 ImagePullBackOff 0 2m
Or ErrImagePull in the status column.
Check the events for the specific error:
kubectl describe pod -n backend -l app=orchestrator
Look for messages like:
unauthorized: authentication requiredmanifest unknowntag not found
Quick read:
unauthorizedusually points to an auth or registry-access problemmanifest unknownortag not foundusually means the image tag does not exist anymore
DOCR Pull Secret Expiry
DOKS clusters use registryIntegration=true for native DOCR access, so per-namespace pull secrets are usually not needed.
If that setting is unfamiliar, it means the cluster nodes already have permission to pull from DigitalOcean Container Registry (DOCR).
However, if you are pulling images locally or the integration token has expired, re-authenticate:
doctl registry login
If the cluster nodes cannot pull images from DOCR:
# Verify the registry integration is active
doctl kubernetes cluster registry list
# If missing, re-add it
doctl registry kubernetes-manifest | kubectl apply -f -
For local Docker operations:
# Re-authenticate with DOCR
doctl registry login
docker pull registry.digitalocean.com/crawbl/crawbl-platform:dev
Bitnami Tag Issues
Bitnami stopped publishing semver-pinned tags (like bitnami/redis:8.2.1-debian-12-r0) on Docker Hub. If a pod fails to pull a Bitnami image:
Fix Option 1: Pin by Digest
In the component's Helm values (components/<name>/envs/dev.yaml), pin the image by SHA256 digest:
image:
digest: sha256:<current-digest>
To find the current digest:
docker pull bitnami/redis:latest
docker inspect --format='{{index .RepoDigests 0}}' bitnami/redis:latest
Fix Option 2: Upgrade the Vendored Chart
Upgrade to the latest chart version, which defaults to pulling the latest tag:
rm -rf components/redis/chart
helm pull bitnami/redis --version <latest-version> \
--untar -d components/redis/chart/
See Upgrade a Vendored Chart for the full procedure.
Wrong Image Tag
If the image tag does not exist in DOCR (e.g., a typo or a failed CI build):
# List available tags for an image
doctl registry repository list-tags crawbl-platform
Verify the tag in the ArgoCD apps values:
# Check the current tag in the values file
rg -n "repository:|tag:" crawbl-argocd-apps/components/orchestrator/chart/values.yaml
If the tag is wrong, update the values file, commit, and push. ArgoCD then syncs the corrected image.
Quick Reference
| Problem | Fix |
|---|---|
| DOCR auth failure (local) | doctl registry login |
| DOCR auth failure (cluster) | doctl registry kubernetes-manifest | kubectl apply -f - |
| Bitnami tag not found | Pin by digest or upgrade the vendored chart |
| Wrong image tag | Check doctl registry repository list-tags <image>, fix values |
| Image not built | Check CI — the build job may have failed |
What's next: Auth Failures
🔗 Terms On This Page
If a term below is unfamiliar, open its glossary entry. For the full list, go to Internal Glossary.
- DOCR: DigitalOcean Container Registry, where Crawbl stores container images.
- DOKS: DigitalOcean Kubernetes, the managed Kubernetes service used for the Crawbl cluster.
- Helm Chart: A packaged set of Kubernetes templates and values used to deploy an application.
- ArgoCD: The GitOps deployment system that keeps the cluster aligned with what is committed in Git.