Harness "Timeout ... waiting for steady state" in CI
The deploy step waits for the workload to reach steady state (all pods ready) and the step timeout elapsed first. The rollout was applied but the pods never became ready in time.
What this error means
A Rollout Deployment or Apply step fails with "Timeout waiting for steady state" or "Status: Waiting for deployment to complete". Pods are pending, crash-looping, or failing readiness probes.
Waiting for deployment "app" rollout to finish: 1 of 3 updated replicas are available...
Timeout waiting for controller to reach steady state.Common causes
Pods never become ready
Failing readiness probes, crash loops, or a bad image keep pods from reaching Ready, so steady state is never met.
Insufficient cluster capacity
Pods stay Pending because the cluster cannot schedule them (resources, quotas, node availability).
How to fix it
Diagnose pod readiness
- Inspect the workload and pod events for the target namespace.
- Fix readiness probes, image, or resource requests as indicated.
- Re-run the deploy once pods reach Ready.
kubectl -n prod rollout status deploy/app
kubectl -n prod describe pod -l app=appRaise the step timeout after fixing readiness
If the app is genuinely slow to become ready, increase the step timeout, but only once pods do eventually reach steady state.
spec:
timeout: 20mHow to prevent it
- Keep readiness probes accurate for the app.
- Right-size resource requests so pods can schedule.
- Set realistic step timeouts for app startup.