# skill_digest: 651e129c7e0478c097161a76655c9f54e3566f5510368426e68d88fbbceb77b9 ### 1. Find the Failed Pod and Check Events ```bash # Find your PipelineRun and identify the failed TaskRun kubectl get pipelinerun -n # Get TaskRuns for the failed pipeline kubectl get taskruns -l tekton.dev/pipelineRun= -n # Find the pod with ImagePullBackOff kubectl get pods -n | grep ImagePullBackOff # Check events for the specific pod kubectl describe pod -n ``` Look in the Events section for details about **why** the image pull failed. ### 2. Common Root Causes **Image Name/Tag Issues:** - Typo in image name or tag - Tag doesn't exist in registry - Wrong registry URL **Authentication Issues:** - Missing imagePullSecret on ServiceAccount - Invalid/expired registry credentials - Wrong secret referenced **Registry Accessibility:** - Registry is down or unreachable - Network policies blocking access - Private registry requires authentication ### 3. Verify the Image ```bash # Check what image the pod is trying to pull kubectl get pod -n -o jsonpath='{.spec.containers[*].image}' # Check if ServiceAccount has imagePullSecrets kubectl get sa -n -o yaml ``` ### 4. Fix Based on Root Cause **If image name is wrong:** - Correct the image reference in your Task/Pipeline definition **If authentication is missing:** ```bash # Add imagePullSecret to ServiceAccount kubectl patch serviceaccount -n -p '{"imagePullSecrets": [{"name": ""}]}' ``` **If credentials are invalid:** - Update the docker-registry secret with valid credentials Would you like me to help you investigate further? Please share: 1. Your namespace name 2. The PipelineRun or Pod name that's failing 3. The output of `kubectl get pods -n ` showing the ImagePullBackOff I can then run the specific commands to identify the exact root cause.