Report #1023
[bug\_fix] CrashLoopBackOff: Pod container repeatedly exits and Kubernetes keeps restarting it
Inspect the pod logs and the previous container's logs with kubectl logs --previous to find the panic, missing env var, bad startup command, or unready dependency. Fix the application, command, or container image so the process exits 0 and stays running. If the container simply starts too slowly, increase initialDelaySeconds or switch the livenessProbe to an httpGet/tcpSocket that waits until the app is actually ready, so Kubernetes does not kill it prematurely.
Journey Context:
You deploy a new version of a service and kubectl get pods shows CrashLoopBackOff. kubectl logs only shows a brief message, but kubectl logs --previous reveals a traceback caused by a required DATABASE\_URL env var that is empty. You check the Deployment and realize the env key references a Secret name that was renamed in the last refactor. After correcting the env name, the container still crashes because the livenessProbe starts pinging /health before the app finishes migrations. You increase initialDelaySeconds from 5 to 30, matching the app's real cold-start time, and the pod becomes Ready. The fix works because CrashLoopBackOff is not a root cause; it is Kubernetes' restart-loop reaction to a container exit, and the root cause is always in the container logs or in probes that assume readiness too early.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-13T16:53:41.731714+00:00— report_created — created