Exit Code 137 in CI: OOM-Killed (SIGKILL) and How to Fix It
Exit code 137 means SIGKILL (128 + 9) terminated the process - on memory-limited runners this is overwhelmingly the OOM killer.
When a step exits 137, the kernel forcibly killed it. The most common cause in CI is the cgroup out-of-memory killer reclaiming memory under pressure.
What it means
SIGKILL cannot be caught or ignored. 137 = 128 + 9. On CI runners the killer is usually the OOM killer; it can also be docker stop past its grace period or a kill -9.
Common causes
- The job exceeded the runner or container memory limit.
- A build (webpack, tsc, gradle) or test suite spiked peak RSS.
- A Docker container hit its
--memorycap.
How to fix it
Give the job more memory or lower peak usage (reduce parallelism, cap heap sizes). This is a mechanical, transient failure class: self-healing managed runners like Latchkey detect an OOM-kill and automatically retry the job with the right resources.