Latchkey Learn
Runner failures Latchkey repairs
The failures that are about the runner and the network, not your code. Each page reproduces the failure on a Latchkey runner and shows what the runner does about it.
Out of memory
Exit 137, heap limits, kernel OOM.
Exit code 143Exit code 143 in GitHub Actions means SIGTERM reached your step, not a crash.
Exit code 137Exit code 137 in GitHub Actions is SIGKILL, almost always the out-of-memory killer.
"JavaScript heap out of memory"Fix "JavaScript heap out of memory" in GitHub Actions: raise the V8 old-space ceiling through NODE_OPTIONS,
"OutOfMemoryError: Java heap space"Fix "OutOfMemoryError: Java heap space" in GitHub Actions by raising the heap of the JVM that actually
"MemoryError"Python MemoryError in GitHub Actions is the interpreter refusing one allocation, not the kernel OOM killer.
Disk full
ENOSPC, inodes, freeing space.
Missing tools
Exit 127, shared libraries.
Registries and networks
Timeouts, 5xx, rate limits, DNS.
Pull-through cache for CIRun a Docker pull-through cache for GitHub Actions: what a registry mirror covers, what it does not, and
"Hash Sum mismatch"An apt Hash Sum mismatch in GitHub Actions means a mirror served an index its own Release file does not vouch
"ThrottlingException"Fix ThrottlingException in GitHub Actions: the AWS CLI retry settings that change what it really does, and
"Could not fetch specs from"A bundler could not fetch specs rubygems ci failure names the last of three fetchers, not the first.
"Cache service responded with 503"Fix cache service responded with 503 and 429 in GitHub Actions: keep a cache blip from failing the build, and
"spurious network error (3 tries remaining)"A cargo spurious network error line is a warning that cargo is about to retry.
"curl error 6 while downloading"A composer could not resolve host ci failure carries a curl errno, and that number says whether Composer
"Could not get lock /var/lib/dpkg/lock"A could not get lock /var/lib/dpkg/lock failure either names a holder or it does not, and that decides the
"toomanyrequests"Fix the Docker pull rate limit in GitHub Actions: authenticate the pull that fails, count what the job really
"net/http: TLS handshake timeout"A Docker TLS handshake timeout in CI means the pull reached the registry and the handshake never finished.
"EAI_AGAIN"Fix EAI_AGAIN and could not resolve host in GitHub Actions: tell a dead resolver from a wrong name, and give
"Connection reset by peer"ECONNRESET in GitHub Actions is a TCP reset, not a timeout. Read which tool printed it, then fix the transfer
"ERR_PNPM_FETCH_503"err_pnpm_fetch_503 means the registry answered and refused. Read the code, know what pnpm already retried,
"failed to reserve cache"Fix error writing layer blob failed to reserve cache in GitHub Actions: why the buildx gha cache export is
"RESOURCE_EXHAUSTED" from gcloudA gcloud resource_exhausted quota ci failure is one of several shapes Google gives one condition.
"TOOMANYREQUESTS" from ghcr.ioA ghcr toomanyrequests response is a registry error code with a 429 behind it.
"API rate limit exceeded"GitHub API rate limit exceeded in Actions means the token your workflow step used has spent its hour.
"i/o timeout" from GOPROXYA go proxy.golang.org timeout ci failure names one request. Tell a dial timeout from a 5xx, then fix the
"another operation (install/upgrade/rollback) is in progress"A helm another operation is in progress failure reads a stored status field, not a live lock.
"Unable to connect to the server"A kubectl unable to connect to the server ci failure picks one of three sentences by branch.
"Could not transfer artifact"A maven could not transfer artifact ci failure is a transport error, not a missing jar.
"npm ERR! network"Fix npm ERR! network in GitHub Actions by reading the code under it: which registry failures are worth a
"error NU1301"A nu1301 unable to load service index error means restore never read a feed.
"ReadTimeoutError: HTTPSConnectionPool"Fix pip ReadTimeoutError and 429 responses from PyPI in GitHub Actions: raise the timeout the failing pip
"Failed to download Chrome for Testing"When playwright chromium download failed ci appears, five attempts have run, over three CDN hosts unless you
"All attempts to connect" and "HTTP 000"A poetry install network error ci failure and a conda HTTP 000 hide the same event.
"RPC failed; curl 56"Fix RPC failed curl 56 in GitHub Actions: the clone died mid-transfer, so fetch less, retry the drop, and
"Failed to query available provider packages"A terraform init registry timeout ci failure stacks four messages into one diagnostic.
"the Cypress binary is missing"The Cypress binary is missing in GitHub Actions when the folder the install wrote to and the folder the test
"Failed to fetch" and "Request failed after"A uv failed to fetch ci error only appears when uv did not retry.
"There appears to be trouble"A yarn network timeout ci failure reads differently in Yarn 1 and Yarn 4.
Lockfile drift
npm, pnpm, yarn, cargo.
"the lock file ... but --locked was passed"Cargo.lock needs to be updated --locked in CI means the manifest moved and the lockfile did not.
"Cannot install with frozen-lockfile"Fix ERR_PNPM_OUTDATED_LOCKFILE in GitHub Actions: pnpm freezes the lockfile in CI by default, so regenerate
"package.json and package-lock.json are not in sync"Fix npm ci package-lock out of sync in GitHub Actions: regenerate package-lock.json, commit it with the
"Your lockfile needs to be updated"Fix yarn frozen-lockfile needs update in GitHub Actions: package.json asks for something yarn.lock does not
Runner lifecycle
Lost communication, queued, timed out, offline.
"fork: retry: Resource temporarily unavailable"Fork retry resource temporarily unavailable CI failures are a process limit, not memory.
Tests that pass on the second attemptGet GitHub Actions flaky tests retry right: measure the re-run rate, classify the failure, and retry only the
"The operation was canceled"A GitHub Actions job timed out because one of three clocks fired.
"The runner is not connected to GitHub"Fix a GitHub Actions runner offline: the three states GitHub means by Offline, how to tell them apart, and
"startup_failure"A GitHub Actions startup_failure means the run never compiled, so no job and no logs exist.
Watchdog kill (no output)A job killed no output watchdog message comes from Travis or CircleCI.
"The hosted runner encountered an error"Fix "the hosted runner encountered an error while running your job" in GitHub Actions: tell a platform fault
"The runner has received a shutdown signal"When the runner has received a shutdown signal in GitHub Actions, the agent was stopped mid-job.
"lost communication with the server"Fix "the runner lost communication with the server" in GitHub Actions: the agent stopped answering, and the
"Waiting for a runner to pick up this job"Fix a GitHub Actions job stuck on "Waiting for a runner to pick up this job": match the labels, check the
Explore other topics
GitHub Actions runners comparedEvery managed runner vendor, priced and benchmarked side by side.
GitHub Actions costWhat Actions really costs, and how to cut it.
GitHub Actions workflow errorsWorkflow, YAML, permissions and artifact errors, diagnosed and fixed.
Docker in CI: Registry, Build & RuntimeRegistry, runtime and build errors on CI runners.
Faster GitHub ActionsCaching, parallelism and cold starts, measured.
CI for coding agentsGive your coding agent a runner.