{"record":{"id":"b901a5ee21b16593","repo":"coreybutler/nvm-windows","slug":"failed-to-download-v-v-arm-64-bit-executable","errorCode":null,"errorMessage":"failed to download v%v arm 64-bit executable","messagePattern":"failed to download v(.+?) arm 64-bit executable","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/nvm.go","lineNumber":707,"sourceCode":"\t\t\tappend64 := node.IsVersionInstalled(env.root, version, \"32\")\n\t\t\tif (cpuarch == \"32\" || cpuarch == \"all\") && !node.IsVersionInstalled(root, version, \"32\") {\n\t\t\t\tsuccess := web.GetNodeJS(root, version, \"32\", append32)\n\t\t\t\tif !success {\n\t\t\t\t\tstatus <- Status{Err: fmt.Errorf(\"failed to download v%v 32-bit executable\", version)}\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (cpuarch == \"64\" || cpuarch == \"all\") && !node.IsVersionInstalled(root, version, \"64\") {\n\t\t\t\tsuccess := web.GetNodeJS(root, version, \"64\", append64)\n\t\t\t\tif !success {\n\t\t\t\t\tstatus <- Status{Err: fmt.Errorf(\"failed to download v%v 64-bit executable\", version)}\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (cpuarch == \"arm64\" || cpuarch == \"all\") && !node.IsVersionInstalled(root, version, \"arm64\") {\n\t\t\t\tsuccess := web.GetNodeJS(root, version, \"arm64\", append64)\n\t\t\t\tif !success {\n\t\t\t\t\tstatus <- Status{Err: fmt.Errorf(\"failed to download v%v arm 64-bit executable\", version)}\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif file.Exists(filepath.Join(root, \"v\"+version, \"node_modules\", \"npm\")) {\n\t\t\t\tutility.DebugLogf(\"move %v to %v\", filepath.Join(root, \"v\"+version), filepath.Join(env.root, \"v\"+version))\n\t\t\t\tif rnerr := utility.Rename(filepath.Join(root, \"v\"+version), filepath.Join(env.root, \"v\"+version)); rnerr != nil {\n\t\t\t\t\tstatus <- Status{Err: err}\n\t\t\t\t}\n\t\t\t\tutility.DebugFn(func() {\n\t\t\t\t\tutility.DebugLogf(\"env root: %v\", env.root)\n\t\t\t\t\tcmd := exec.Command(\"cmd\", \"/C\", \"dir\", filepath.Join(env.root, \"v\"+version))\n\t\t\t\t\tout, err := cmd.CombinedOutput()\n\t\t\t\t\tif err != nil {\n\t\t\t\t\t\tutility.DebugLog(err.Error())\n\t\t\t\t\t} else {\n\t\t\t\t\t\tutility.DebugLog(string(out))\n\t\t\t\t\t}","sourceCodeStart":689,"sourceCodeEnd":725,"githubUrl":"https://github.com/coreybutler/nvm-windows/blob/5b18223ca19ff50d707f35410dbc6bd440a9f74d/src/nvm.go#L689-L725","documentation":"Sent on the install status channel when cpuarch is arm64 (or all) and web.GetNodeJS(root, version, \"arm64\", append64) returns false — the win-arm64 zip could not be downloaded or extracted. Note it passes append64 (the 32-bit installed flag), mirroring the 64-bit append behavior for mixed installs.","triggerScenarios":"`nvm install 20.11.0 arm64` while the arm64 artifact fetch fails: version predates arm64 publishing even though IsNodeArm64bitAvailable let it pass (stale index), mirror lacks win-arm64 zips, or generic network failure.","commonSituations":"Windows-on-ARM users with a mirror that only mirrors x86/x64; corporate proxies; a very new version whose arm64 zip is not yet on the mirror; disk space in TEMP.","solutions":["Retry the download (transient failures are common).","Switch to the official distribution: `nvm node_mirror https://nodejs.org/dist` — arm64 artifacts exist there for supported versions.","Confirm the version actually publishes win-arm64 (v20+); otherwise use `nvm install <version> 64` and rely on x64 emulation.","Check proxy settings with `nvm proxy` and free TEMP disk space."],"exampleFix":"# before (mirror without arm64)\nnvm install 20.11.0 arm64\n# after\nnvm node_mirror https://nodejs.org/dist\nnvm install 20.11.0 arm64","handlingStrategy":"fallback","validationCode":"# bash: confirm arm64 artifact exists, else fall back to x64 emulation\nURL=\"${NVM_NODE_MIRROR:-https://nodejs.org/dist}/v$V/win-arm64/node.exe\"\nif ! curl -sfI \"$URL\" >/dev/null; then echo 'no arm64 build; using 64' >&2; ARCH=64; fi\nnvm install \"$V\" \"${ARCH:-arm64}\"","typeGuard":null,"tryCatchPattern":"nvm install \"$V\" arm64 || { echo 'arm64 fetch failed; falling back to x64'; nvm install \"$V\" 64; }","preventionTips":["On ARM machines, default to `64` and opt into arm64 only for v20+.","Use the official nodejs.org dist mirror when you need arm64 zips.","Check the win-arm64 folder for the exact point release before pinning."],"tags":["nvm-windows","network","download","arm64","install"],"backgroundTag":null,"analyzedSha":"5b18223ca19ff50d707f35410dbc6bd440a9f74d","analyzedAt":"2026-08-15T10:06:51.428Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}