Job has reached the specified backoff limit (BackoffLimitExceeded)
The Job’s pods failed more times than backoffLimit (default 6), so Kubernetes marked the Job failed and stopped retrying.
Seen on:
Kubernetes
Meaning
The failure is in the pods, not the Job. Failed pods may already be cleaned up; set ttl/history carefully and check the last pod’s logs. CronJobs show the same for each failed run.
Common causes
- The task itself fails (exception, bad input)
- Missing config/secret
- OOMKilled or DeadlineExceeded inside pods
- Image/command errors
⚡ Quick fix
- Get logs of the Job’s pods: kubectl logs job/<name>
- Fix the task and recreate the Job (Jobs are immutable)
- Raise backoffLimit only if failures are transient
Detailed fix by platform
Kubernetes
- bash
kubectl describe job migrate -n app | sed -n '/Events/,$p' kubectl logs job/migrate -n app --tail=100 kubectl delete job migrate -n app && kubectl apply -f job.yaml
How to diagnose
- Pod logs — Why did attempts fail?
- Exit codes — 1 app, 137 OOM
- Restart policy — Never/OnFailure
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
Most viewed in Kubernetes
Other ways to find it
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
Was this page helpful?
Report a correction or suggest an improvement
Last updated 7 Oct 2026