{"record":{"id":"05c0465f72012bae","repo":"coreybutler/nvm-windows","slug":"node-js-v-s-is-not-yet-released-or-is-not-availabl","errorCode":null,"errorMessage":"Node.js v%s is not yet released or is not available for download yet.","messagePattern":"Node\\.js v(.+?) is not yet released or is not available for download yet\\.","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/nvm.go","lineNumber":653,"sourceCode":"\t\t\t\t\t\tsverr = errors.New(\"Unrecognized version: \\\"\" + requestedVersion + \"\\\"\")\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\terr = sverr\n\t\t\t}\n\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-*\")","sourceCodeStart":635,"sourceCodeEnd":671,"githubUrl":"https://github.com/coreybutler/nvm-windows/blob/5b18223ca19ff50d707f35410dbc6bd440a9f74d/src/nvm.go#L635-L671","documentation":"Sent on the install status channel when checkVersionExceedsLatest(version) reports the requested version number is higher than the newest release known from index.json. It exists to distinguish 'does not exist yet' from 'never existed' — the version parses fine but is ahead of the published catalog.","triggerScenarios":"`nvm install 99.0.0`, or requesting a version released within the last hours while the locally cached index.json predates it (the cache says the latest is older than your request).","commonSituations":"Bots/CI pinning a version announced in a release blog before the local index refreshes; typo'd majors (30 instead of 20); users testing the guard with absurd versions.","solutions":["Verify the version exists on nodejs.org; if it was just released, wait for the index to refresh or clear the cached index.json under the nvm root and retry.","If you genuinely meant the newest, use `nvm install latest`.","Fix the typo in the major/minor number and retry."],"exampleFix":"# before\nnvm install 30.1.0\n# after\nnvm install 20.11.0","handlingStrategy":"validation","validationCode":"# bash: reject versions above the published latest\nLATEST=$(curl -sf https://nodejs.org/dist/index.json | sed -nE 's/.*\"version\":\"v([0-9.]+)\".*/\\1/p' | head -1)\n[ \"$(printf '%s\\n%s' \"$V\" \"$LATEST\" | sort -V | tail -1) = \"$LATEST\" ] || { echo \"v$V exceeds latest $LATEST\" >&2; exit 1; }","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Compare your pinned version against index.json in CI before installing.","Use `nvm install latest` when you always want the newest.","After a brand-new node release, let the cached index refresh before pinning to it."],"tags":["nvm-windows","version-resolution","install","cache"],"backgroundTag":null,"analyzedSha":"5b18223ca19ff50d707f35410dbc6bd440a9f74d","analyzedAt":"2026-08-15T10:06:51.428Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}