rustc was killed by the kernel's OOM killer (signal 9). The compilation's peak memory exceeded what the runner had free, so the process was terminated mid-codegen rather than failing gracefully.
What this error means
The build dies with error: rustc interrupted by signal 9 (SIGKILL) or simply vanishes with exit 137, often on a large crate or with high codegen parallelism. It can be intermittent depending on concurrent load.
cargo
error: rustc interrupted by signal 9 (SIGKILL)
note: the compiler unexpectedly panicked. this is a bug.
# (often paired with an exit code of 137)
Common causes
Peak memory exceeds runner RAM
A heavy crate, many parallel codegen units, or debug info inflates rustc's memory above the runner's limit and the OOM killer steps in.
Too much build parallelism
Several rustc processes compiling in parallel multiply peak memory beyond what the box can hold.
How to fix it
Lower memory pressure
Reduce parallelism and codegen units, and trim debug info, to cut peak memory.
Cap CARGO_BUILD_JOBS and codegen units on memory-tight runners.
Reduce debug info in CI profiles.
On self-healing managed runners (Latchkey), an OOM-killed build is auto-retried with larger RAM and the cargo registry stays cached, so a transient memory spike does not fail the pipeline.
Frequently asked questions
What causes ""rustc interrupted by SIGKILL""?
A heavy crate, many parallel codegen units, or debug info inflates rustc's memory above the runner's limit and the OOM killer steps in.
How do I fix "rustc interrupted by SIGKILL"?
Reduce parallelism and codegen units, and trim debug info, to cut peak memory.
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.