Skip to content
Latchkey

GitHub Actions "Error: Process completed with exit code 137" (OOM)

Exit code 137 means the process received SIGKILL (128 + 9); on a runner this is nearly always the OOM killer reclaiming memory because the job exceeded the host RAM.

What this error means

A memory-heavy step (build, test, bundling) is killed with "Error: Process completed with exit code 137", often with no clean error from the tool itself.

github-actions
Killed
Error: Process completed with exit code 137.

Common causes

Job exceeded runner RAM

The workload allocated more memory than the runner has, so the kernel OOM killer terminated the largest process.

Too much parallelism for the host

High concurrency (test workers, parallel compiles) multiplied per-process memory beyond what the host can hold.

How to fix it

Reduce memory pressure or add headroom

  1. Lower worker/parallelism counts (jest --maxWorkers, make -j).
  2. Cap heap where applicable (NODE_OPTIONS=--max-old-space-size).
  3. Split the heavy step so each process uses less memory.
  4. Move to a runner with more RAM.
.github/workflows/ci.yml
env:
  NODE_OPTIONS: --max-old-space-size=4096

Use right-sized managed runners

Latchkey managed runners offer right-sized RAM and auto-retry transient infrastructure failures, so an OOM from an undersized host is avoided, at roughly 69% less than GitHub-hosted runners.

How to prevent it

  • Match runner RAM to peak job memory.
  • Tune parallelism to fit the host.
  • Watch memory trends on heavy build/test steps.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →