Exit Code 139 in CI: Segmentation Fault (SIGSEGV) Explained
Exit code 139 means the process died from SIGSEGV (128 + 11) - a segmentation fault.
A step exiting 139 hit an invalid memory access. This is almost always a real bug in native code, not a transient infrastructure problem.
What it means
139 = 128 + 11. SIGSEGV fires on an invalid memory reference: a null dereference, use-after-free, buffer overflow, or an ABI mismatch between a binary and a library.
Common causes
- A native addon built against a different runtime ABI.
- A C/C++ memory bug (null pointer, overflow).
- Stack overflow from unbounded recursion.
How to fix it
Reproduce with debug symbols and a core dump or a sanitizer (ASan). For native addons, rebuild against the exact runtime ABI on the runner. This reproduces deterministically, so retrying will not help.
Related guides
Exit Codes and Signals in CI/CD: A Practical GuideA practical guide to process exit codes and signals in CI/CD - what 1, 2, 124, 126, 127, 130, 137, and 143 me…
CI Exit Code Lookup: What Does This Exit Code Mean?Instant lookup for CI/CD process exit codes - enter a code (137, 127, 143…) to see what it means, whether it…
Node.js "JavaScript heap out of memory" in CI - Fix FATAL Heap ErrorsFix "FATAL ERROR: Reached heap limit - JavaScript heap out of memory" in CI builds by raising the V8 heap lim…