CI Watchdog Kill - Job Stopped for "No Output" Timeout
Some CI systems kill a job that produces no log output for a set window, on the assumption it has hung. A long, quiet-but-busy step (a big compile, a long test) can trip this watchdog even though it is making progress.
What this error means
A job is terminated with a message about no output for N minutes (or simply silent then killed) while a legitimately long, low-output step was running. Adding periodic output, or raising the idle/no-output timeout, fixes it.
No output has been received in the last 10m0s, this potentially indicates
a stalled build or something wrong with the build itself.
Terminating the job.Common causes
A long step emits no output
A heavy compile, a quiet test run, or a long upload can run for many minutes with no log lines. A no-output watchdog interprets the silence as a hang and kills the job.
Buffered output never flushes
A process buffering stdout may produce nothing until it finishes. To the watchdog that looks identical to a stall, so it terminates the still-working job.
How to fix it
Emit periodic progress (keep-alive)
Print a heartbeat alongside the quiet command so the watchdog sees activity.
( while true; do echo "still building... $(date +%T)"; sleep 60; done ) &
KEEPALIVE=$!
./long-build.sh
kill "$KEEPALIVE"Unbuffer output or raise the idle timeout
- Force line-buffered/unbuffered output (
stdbuf -oL,PYTHONUNBUFFERED=1, tool verbosity flags). - Increase the no-output/idle timeout where the CI system allows it.
- Make the long step report progress natively (e.g. periodic test or build progress).
How to prevent it
- Have long steps emit periodic progress output.
- Run tools unbuffered so progress reaches the log promptly.
- Tune the idle/no-output timeout for legitimately quiet steps.