Skip to content
Latchkey

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.

CI log
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.

Terminal
( while true; do echo "still building... $(date +%T)"; sleep 60; done ) &
KEEPALIVE=$!
./long-build.sh
kill "$KEEPALIVE"

Unbuffer output or raise the idle timeout

  1. Force line-buffered/unbuffered output (stdbuf -oL, PYTHONUNBUFFERED=1, tool verbosity flags).
  2. Increase the no-output/idle timeout where the CI system allows it.
  3. 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.

Frequently asked questions

What causes "Watchdog kill (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.
How do I fix Watchdog kill (no output)?
Print a heartbeat alongside the quiet command so the watchdog sees activity.
Can Latchkey fix this automatically?
Yes. Latchkey runs your GitHub Actions on managed runners that detect this failure, apply the fix, and retry the job automatically - self-healing is on by default.

Related guides

References

Latchkey auto-heals failures like this one - detected, fixed, and retried without you. Start free → 30-day trial · No credit card