GitHub Actions setup-node "Unable to find Node version for platform"
actions/setup-node resolves the requested version against the published Node release manifest. A version that has no build for the runner OS or CPU architecture fails before any download starts.
What this error means
A setup-node step fails resolving the version, often after a Node minor release was yanked, a typo in node-version, or an arm64 runner that lacks a matching build.
Error: Unable to find Node version '20.19' for platform linux and architecture x64.Common causes
Version string does not match a published release
A partial or non-existent version (e.g. 20.19 vs 20.19.0, or a yanked patch) has no entry in the Node release manifest for the platform.
Architecture without a matching build
An arm64 or 32-bit runner requests a version that only ships x64 binaries, so resolution finds no candidate.
How to fix it
Pin to a published version or range
- Use a major or LTS alias (e.g. 20 or lts/*) so setup-node picks the latest published patch.
- If you need an exact version, confirm it exists for linux/x64 in the Node release list.
- For arm64 runners, verify the version ships an arm64 build.
- uses: actions/setup-node@v4
with:
node-version: '20' # or 'lts/*'How to prevent it
- Prefer major or LTS aliases over pinned patch versions in CI.
- Use a .nvmrc with node-version-file so the version has a single source.
- On Latchkey managed runners the version download itself is auto-retried on transient network failures and served from a warm tool cache, so a flaky mirror does not turn into a red build.