Cron exit codes and failure modes
What a scheduled job's exit code actually means, and how to fix it. Each page answers a specific failure question with correct, primary-source-cited facts and a monitoring pattern you can copy.
Exit code 137: killed by SIGKILL (usually out of memory)
Exit code 137 means a process was killed by SIGKILL (signal 9) — usually the Linux OOM killer or a container memory limit. How to confirm the cause and fix it.
Exit code 127: command not found (a cron PATH problem)
Exit code 127 means the shell couldn't find the command to run — almost always a PATH problem in cron. Why cron's PATH differs and how to fix it.
Exit code 143: terminated by SIGTERM (signal 15)
Exit code 143 means a process received SIGTERM (signal 15) and stopped — often a deploy, a timeout, or a container shutdown. How to tell an intended stop from a problem.
Exit code 1: a general error (read the log, not the code)
Exit code 1 is a catch-all failure — the command ran but reported an error. How to read the log to find the real cause, and how to be alerted when a cron job exits 1.
Why a cron job fails silently — and how to catch it
Cron jobs fail silently because cron discards output and doesn't alert on a missed run. Why it happens and how a heartbeat monitor surfaces the failure.
Cron job timeout: kill a hung run before it overlaps
How to put a timeout on a cron job so a hung run is killed instead of overlapping the next one, using the timeout command, and how to alert when a job hangs.
Want the failure explained automatically? See the log-aware diagnosis on real failures, or browse the monitoring guides.