Skip to content
Latchkey

GitHub Actions setup action "Failed to download" (network)

A setup-* action downloads a toolchain from an upstream host (or the tools cache). A transient network error or upstream 5xx aborts the download. On Latchkey managed runners, transient toolchain-download failures are auto-retried and warm pools keep common toolchains pre-cached.

What this error means

A setup step (Node, Go, Python, Java) fails while fetching the toolchain archive with a network or HTTP error.

github-actions
Error: Failed to download version 20.11.1 from https://nodejs.org/dist/v20.11.1/node-v20.11.1-linux-x64.tar.gz
Error: read ECONNRESET

Common causes

Transient upstream or network error

The download host returned a 5xx, timed out, or the connection reset mid-transfer.

Version not in the tools cache

An exact version missing from the runner cache forces a remote download that can fail transiently.

How to fix it

Retry and prefer cached versions

  1. Re-run the job; transient download failures usually clear.
  2. Pin to a version present in the runner tools cache when possible to avoid remote fetches.
  3. For flaky upstreams, wrap the setup in a retry action.
.github/workflows/ci.yml
- uses: actions/setup-node@v4
  with:
    node-version: '20'
    check-latest: false

How to prevent it

  • Prefer toolchain versions cached on the runner image.
  • Wrap flaky network setup steps in a retry helper.

Frequently asked questions

What causes ""setup-* failed to download""?
The download host returned a 5xx, timed out, or the connection reset mid-transfer.
How do I fix "setup-* failed to download"?
Retry and prefer cached versions

Related guides

References

Latchkey auto-heals failures like this one - detected, fixed, and retried without you. Start free → 30-day trial · No credit card