kubectl "progress deadline exceeded" - Fix Rollout Timeouts in CI
Your Deployment’s new pods did not become Ready within progressDeadlineSeconds, so Kubernetes marked the rollout failed and kubectl rollout status returned non-zero in CI.
What this error means
kubectl rollout status deployment/<name> blocks and then fails, or the Deployment reports ProgressDeadlineExceeded. The new ReplicaSet never reaches the desired Ready count.
Waiting for deployment "api" rollout to finish: 1 out of 3 new replicas
have been updated...
error: deployment "api" exceeded its progress deadlineCommon causes
New pods crash or fail their probes
A bad image, missing config, or a readiness probe that never passes keeps the new pods out of Ready. The rollout cannot make progress and hits the deadline.
Pods cannot be scheduled
Insufficient CPU/memory, unsatisfiable nodeSelector/affinity, or unbound PVCs leave pods Pending, so the rollout stalls until the deadline.
How to fix it
Inspect why the new pods are not Ready
Look at the rollout’s pods and events to find the real blocker before changing the deadline.
kubectl rollout status deploy/api --timeout=120s
kubectl get pods -l app=api
kubectl describe deploy/api | sed -n '/Conditions/,/Events/p'
kubectl logs deploy/api --all-containers --tail=50Fix the underlying readiness problem
- If pods CrashLoopBackOff, fix the image/config and re-deploy.
- If a readiness probe never passes, correct its path/port or initialDelaySeconds.
- If pods are Pending, add capacity or relax the scheduling constraints.
Allow more time only when the app is genuinely slow to start
If startup is legitimately long, raise the deadline rather than masking a real failure.
spec:
progressDeadlineSeconds: 600How to prevent it
- Set realistic
progressDeadlineSecondsfor the app’s real startup time. - Gate deploys on
kubectl rollout statusso CI fails on a bad rollout. - Validate images and probes in a staging deploy before production.