coreybutler/nvm-windows · error
Node.js v%s is only available in 32-bit and 64-bit.
Error message
Node.js v%s is only available in 32-bit and 64-bit.
What it means
Sent on the install status channel when the requested cpuarch is arm64 but web.IsNodeArm64bitAvailable(version) reports that Node.js does not publish an ARM64 build for that version. Node.js only started shipping official Windows ARM64 binaries at v20 (experimental) and later, so older versions trip this.
Source
Thrown at src/nvm.go:556
if err != nil {
if show_progress {
notify(Notification{
Title: "Rollback Error",
Message: err.Error(),
Icon: "error",
Actions: []Action{
{Type: "protocol", Label: "Open Explorer", URI: fmt.Sprintf("file://%s", filepath.ToSlash(filepath.Join(env.root)))},
},
})
} else {
fmt.Printf("rollback error: %v\n", err)
}
} else {
fmt.Println("Rollback complete.")
}
if cpuarch == "arm64" && !web.IsNodeArm64bitAvailable(version) {
status <- Status{Err: fmt.Errorf("Node.js v%s is only available in 32-bit and 64-bit.", version)}
}
if !node.IsVersionInstalled(env.root, version, cpuarch) {
if !node.IsVersionAvailable(version) {
url := web.GetFullNodeUrl("index.json")
status <- Status{Err: fmt.Errorf("Version %s is not available.\n\nThe complete list of available versions can be found at %s", version, url)}
}
}
return
}
}
}()
// Wait for the prior subroutine to initialize before starting the next dependent thread
time.Sleep(300 * time.Millisecond)
go func() {View on GitHub (pinned to 5b18223ca1)
Solutions
- Pick a version with ARM64 builds — v20+ (ideally the newest release): `nvm install latest arm64`.
- Fall back to emulated x64: `nvm install <version> 64` (x64 Node runs under Windows 11 ARM emulation).
- Check nodejs.org download pages or the index.json URL for which versions carry win-arm64 artifacts.
Example fix
# before nvm install 18.20.0 arm64 # after nvm install 20.11.0 arm64
Defensive patterns
Strategy: validation
Validate before calling
# bash: only request arm64 where it exists
if [ "$ARCH" = arm64 ]; then
major=$(printf '%s' "$V" | sed -E 's/^v?([0-9]+).*/\1/')
[ "$major" -ge 20 ] || { echo "arm64 needs node >= 20; falling back to 64"; ARCH=64; }
fi
nvm install "$V" "$ARCH" Prevention
- On Windows-on-ARM, pin node v20 or later for native arm64.
- Fall back to `64` for older versions (x64 emulation).
- Check the win-arm64 entry in index.json before scripting arm64 installs.
When it happens
Trigger: `nvm install 18.20.0 arm64` (no ARM64 build exists for v18), or `nvm install 20.x arm64` for an early point release without arm64 artifacts, after the version was already found locally installed (this branch runs on the 'already installed' path).
Common situations: Windows-on-ARM (Surface Pro X, Snapdragon laptops) users trying older LTS lines; users assuming all versions have arm64 because `nvm arch` shows arm64.
Related errors
- Version %s is not available. The complete list of available
- Node.js v%s is only available in 32-bit.
- failed to download v%v arm 64-bit executable
- "%s" is not a valid version. Please use a valid semantic ver
- Node.js v%s is not yet released or is not available for down
AI-assisted analysis of coreybutler/nvm-windows@5b18223ca1 (2026-08-15).
Data as JSON: /api/errors/d3a9f4a9bf1cd3d9.
Report an issue: GitHub.