Skip to content
Latchkey

curl Exit Code 28 in CI: Operation Timed Out

curl exit code 28 means the operation timed out - a connect or transfer exceeded curl's timeout budget.

A step exiting 28 from curl took too long. This is one of the most common transient network failures in CI.

What it means

Exit 28 is curl's CURLE_OPERATION_TIMEDOUT. The connection or data transfer did not complete within --connect-timeout/--max-time (or the default).

Common causes

  • A slow or overloaded upstream server.
  • Network congestion or packet loss.
  • A too-tight timeout for a large download.

How to fix it

Add sensible --connect-timeout/--max-time and --retry flags, or raise the budget for large transfers. Because timeouts are usually transient, Latchkey auto-retries this mechanical failure class instead of failing the build.

Reading exit codes in CI

  • A shell reports 128 + N when a process is terminated by signal N: 137 is SIGKILL (usually the out-of-memory killer), 143 is SIGTERM, 130 is SIGINT.
  • Exit code 137 in a container almost always means the kernel killed it for memory. Nothing in the application log will explain it.
  • A pipeline reports the exit status of its LAST command unless pipefail is set, which is how a failing command piped to tee produces a green build.
  • Some tools use non-zero codes for non-failure outcomes. Check the tool documentation before treating any non-zero code as an error.

Frequently asked questions

curl Exit Code 28 in CI: Operation Timed Out?
A step exiting 28 from curl took too long. This is one of the most common transient network failures in CI.
What it means?
Exit 28 is curl's CURLE_OPERATION_TIMEDOUT. The connection or data transfer did not complete within --connect-timeout/--max-time (or the default).
How to fix it?
Add sensible --connect-timeout/--max-time and --retry flags, or raise the budget for large transfers. Because timeouts are usually transient, Latchkey auto-retries this mechanical failure class instead of failing the build.

Related guides

References

Run this faster and cheaper on Latchkey managed runners - self-healing included. Start free → 30-day trial · No credit card