Exit Codes & Signals
What every exit code and signal means when a CI job dies.
A reference for the process exit codes and Unix signals you see in CI logs - what each one means, why it happens, and how to fix it.
Exit codes
Common and tool-specific exit codes.
CI exit codes referenceExit codes you see in CI logs and what each indicates, including why 137 is never an application error and
curl exit 28curl exit code 28 means the operation timed out - connect or transfer exceeded the timeout.
curl exit 35curl exit code 35 means an SSL/TLS handshake failed - a protocol, cipher, or certificate negotiation problem.
curl exit 56curl exit code 56 means a failure receiving network data - the connection was reset or dropped mid-transfer.
Exit code 100Exit code 100 commonly comes from apt/apt-get when a package operation fails - a missing package, a stale
pytest exit codesWhat pytest exit codes 0 to 5 mean and how to handle each in CI: which are real test failures, which are
Signals
SIGKILL, SIGTERM, SIGSEGV, and friends.
SIGABRT - signal 6What SIGABRT (signal 6) means in CI: the process called abort() - an assertion or fatal library error.
SIGFPE - signal 8What SIGFPE (signal 8) means in CI: an arithmetic exception, usually integer divide-by-zero.
SIGTERM - signal 15What SIGTERM (signal 15) means in CI: a graceful termination request.
Explore other topics
GitHub ActionsWorkflow, runner, and YAML errors - diagnosed and fixed.
Node.js & npmnpm, yarn, and pnpm failures in CI - solved.
DockerBuild, run, compose, and registry errors - explained.
Pythonpip, poetry, venv, and pytest failures - fixed.
Java & JVMMaven, Gradle, and JVM failures in CI - resolved.
GoGo build, module, and test failures - diagnosed.