{"record":{"id":"ebfa6da10e574e52","repo":"coreybutler/nvm-windows","slug":"node-js-v-s-is-only-available-in-32-bit","errorCode":null,"errorMessage":"Node.js v%s is only available in 32-bit.","messagePattern":"Node\\.js v(.+?) is only available in 32-bit\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/nvm.go","lineNumber":658,"sourceCode":"\n\t\t\tif err != nil {\n\t\t\t\tstatus <- Status{Err: err, Help: true}\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\tif err != nil {\n\t\t\tstatus <- Status{Err: fmt.Errorf(`\"%s\" is not a valid version.`+\"\\n\"+`Please use a valid semantic version number, \"lts\", or \"latest\".`, requestedVersion)}\n\t\t\treturn\n\t\t}\n\n\t\tif checkVersionExceedsLatest(version) {\n\t\t\tstatus <- Status{Err: fmt.Errorf(\"Node.js v%s is not yet released or is not available for download yet.\", version)}\n\t\t\treturn\n\t\t}\n\n\t\tif cpuarch == \"64\" && !web.IsNode64bitAvailable(version) {\n\t\t\tstatus <- Status{Err: fmt.Errorf(\"Node.js v%s is only available in 32-bit.\", version)}\n\t\t\treturn\n\t\t}\n\n\t\t// Check to see if the version is already installed\n\t\tif !node.IsVersionInstalled(env.root, version, cpuarch) {\n\t\t\tif !node.IsVersionAvailable(version) {\n\t\t\t\turl := web.GetFullNodeUrl(\"index.json\")\n\t\t\t\tstatus <- Status{Err: fmt.Errorf(\"Version %s is not available.\\n\\nThe complete list of available versions can be found at %s\", version, url)}\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\t// Make the output directories\n\t\t\troot, err := os.MkdirTemp(\"\", \"nvm-install-*\")\n\t\t\tif err != nil {\n\t\t\t\tstatus <- Status{Err: err}\n\t\t\t}\n\t\t\tdefer os.RemoveAll(root)\n\t\t\tos.MkdirAll(filepath.Join(root, \"v\"+version, \"node_modules\"), os.ModeDir)","sourceCodeStart":640,"sourceCodeEnd":676,"githubUrl":"https://github.com/coreybutler/nvm-windows/blob/5b18223ca19ff50d707f35410dbc6bd440a9f74d/src/nvm.go#L640-L676","documentation":"Sent on the install status channel when cpuarch is 64 but web.IsNode64bitAvailable(version) is false — i.e. that Node.js release has no win-x64 binary. This only happens for very old or special builds: Node.js shipped x64 for most releases, so it is mainly historical versions and odd builds.","triggerScenarios":"`nvm install <very-old-version> 64` where nodejs.org only published a 32-bit (ia32) zip for it; also possible when the index.json metadata for that version lacks an x64 entry.","commonSituations":"Installing legacy versions (pre-x64 era, e.g. 0.x releases) on modern hardware; users forcing 64 explicitly when `nvm arch` already chose it.","solutions":["Install the 32-bit build instead: `nvm install <version> 32`.","Pick a modern version that has x64 artifacts (effectively everything from v4 onward): `nvm install latest`.","Confirm availability on the index.json URL / nodejs.org download page."],"exampleFix":"# before\nnvm install 0.10.36 64\n# after\nnvm install 0.10.36 32","handlingStrategy":"fallback","validationCode":"# bash: fall back to 32-bit for versions without x64\nLATEST_X64=4  # x64 artifacts exist from v4 onward\nmajor=$(printf '%s' \"$V\" | sed -E 's/^v?([0-9]+).*/\\1/')\n[ \"$major\" -lt \"$LATEST_X64\" ] && ARCH=32\nnvm install \"$V\" \"${ARCH:-64}\"","typeGuard":null,"tryCatchPattern":"nvm install \"$V\" 64 || { echo 'x64 unavailable, trying 32-bit'; nvm install \"$V\" 32; }","preventionTips":["Don't force an arch for legacy (0.x/early) versions — let nvm pick.","Check the win-x64 entry in index.json when scripting old versions.","Keep `nvm arch` aligned with the artifacts your versions actually ship."],"tags":["nvm-windows","cpu-architecture","version-availability","install"],"backgroundTag":null,"analyzedSha":"5b18223ca19ff50d707f35410dbc6bd440a9f74d","analyzedAt":"2026-08-15T10:06:51.428Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}