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.
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 ind…
Exit code 143Exit code 143 means a process was terminated by SIGTERM (128 + 15) - a step timeout, spot preemption, or orch…
pytest exit codesDocumentation for pytest exit codes 0-5: all passed (0), tests failed (1), interrupted (2), internal error (3…
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. A proc…
SIGFPE - signal 8What SIGFPE (signal 8) means in CI: an arithmetic exception, usually integer divide-by-zero. A process killed…
SIGTERM - signal 15What SIGTERM (signal 15) means in CI: a graceful termination request. A process killed by it exits with code…
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.