{"record":{"id":"34231da51e7e53bb","repo":"jdx/mise","slug":"precompiled-node-archive-not-found-and-compilation","errorCode":null,"errorMessage":"precompiled node archive not found and compilation is disabled","messagePattern":"precompiled node archive not found and compilation is disabled","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/plugins/core/node.rs","lineNumber":150,"sourceCode":"            }\n            FetchOutcome::NotFound => {\n                if ctx.locked {\n                    if let Some(message) = node_flavor_not_found_message(opts) {\n                        bail!(\"{message}\\nlocked mode requires the locked precompiled artifact\")\n                    }\n                    bail!(\n                        \"precompiled node archive not found and locked mode requires the locked precompiled artifact\"\n                    )\n                } else if Settings::get().node_compile(CompilePurpose::Inspect) != Some(false) {\n                    if let Some(message) = node_flavor_not_found_message(opts) {\n                        warn!(\"{message}\");\n                    }\n                    self.install_compiling(ctx, tv, opts).await\n                } else {\n                    if let Some(message) = node_flavor_not_found_message(opts) {\n                        bail!(\"{message}\\ncompilation is disabled\")\n                    }\n                    bail!(\"precompiled node archive not found and compilation is disabled\")\n                }\n            }\n        }\n    }\n\n    async fn install_windows(\n        &self,\n        ctx: &InstallContext,\n        tv: &mut ToolVersion,\n        opts: &BuildOpts,\n    ) -> Result<()> {\n        match self\n            .fetch_binary(ctx, tv, opts, || self.extract_zip(opts, ctx))\n            .await?\n        {\n            FetchOutcome::Downloaded => {\n                warn_patches_not_applied();\n                Ok(())","sourceCodeStart":132,"sourceCodeEnd":168,"githubUrl":"https://github.com/jdx/mise/blob/533346cc374382b41ec5ff70536252b2e96e725c/src/plugins/core/node.rs#L132-L168","documentation":"The core node plugin tries to download a prebuilt node distribution; when the archive for the requested version/flavor/platform is not available (FetchOutcome::NotFound) it would normally fall back to compiling node from source. This error is raised when that fallback is explicitly blocked because node compilation is disabled (`node.compile=false` or the setting resolves to false). mise throws it because neither prebuilt-download nor source-compilation can satisfy the install request.","triggerScenarios":"Running `mise install node@<version>` where nodejs.org (or a configured mirror/flavor URL) has no matching tarball for the platform/flavor, while `Settings::node_compile` returns Some(false) so install_compiling is skipped. Also raised when a custom node flavor is missing and compilation is disabled.","commonSituations":"Pinning an exotic node version that has no prebuilt binary for your OS/arch; setting `node.compile = false` in settings to speed up installs; using a partial mirror that lacks some archives; requesting an unofficial flavor (e.g. skypack/graalvm builds) not published upstream.","solutions":["Remove the `node.compile=false` setting (or set it true) so mise can build node from source: `mise settings set node.compile true`","Install a node version that has an official prebuilt binary for your platform (e.g. `mise use node@22`)","Check your node mirror/flavor configuration points at a repository that actually hosts the requested archive"],"exampleFix":"// before (mise.toml / settings)\n[node]\ncompile = false\nversion = \"19.0.0\" // no prebuilt for this platform\n// after\n[node]\nversion = \"22.14.0\" // prebuilt exists; compile left unset","handlingStrategy":"validation","validationCode":"// verify a prebuilt node exists before installing, with compile disabled\nconst ver = \"22.14.0\";\nconst res = await fetch(`https://nodejs.org/dist/v${ver}/`);\nif (!res.ok) throw new Error(`no prebuilt node ${ver}; set node.compile=true or pick another version`);","typeGuard":null,"tryCatchPattern":"try {\n  await $`mise install node@${ver}`;\n} catch (e) {\n  if (String(e).includes(\"compilation is disabled\")) {\n    await $`mise settings set node.compile true`;\n    await $`mise install node@${ver}`;\n  } else throw e;\n}","preventionTips":["Keep node.compile unset (or true) unless you specifically need downloads only","Before pinning a version, check https://nodejs.org/dist for a matching tarball for your OS/arch","Avoid unofficial node flavors unless their archives are confirmed to exist"],"tags":["node","install","precompiled","network"],"backgroundTag":"resource-not-found","analyzedSha":"533346cc374382b41ec5ff70536252b2e96e725c","analyzedAt":"2026-09-17T13:35:38.149Z","contentChangedAt":"2026-09-17T13:35:38.149Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}