jdx/mise · error
{message}\ncompilation is disabled
Error message
{message}\ncompilation is disabled What it means
When installing a precompiled Node.js build with core:node, mise first tries to fetch a prebuilt archive. If none exists and the node flavor (e.g. a non-standard build flavor) is not found, and compilation is not enabled via node.compile, installation is aborted with the flavor-specific message plus 'compilation is disabled'. mise throws this because it cannot proceed without either a prebuilt archive or source compilation.
Source
Thrown at src/plugins/core/node.rs:148
warn_patches_not_applied();
Ok(())
}
FetchOutcome::NotFound => {
if ctx.locked {
if let Some(message) = node_flavor_not_found_message(opts) {
bail!("{message}\nlocked mode requires the locked precompiled artifact")
}
bail!(
"precompiled node archive not found and locked mode requires the locked precompiled artifact"
)
} else if Settings::get().node_compile(CompilePurpose::Inspect) != Some(false) {
if let Some(message) = node_flavor_not_found_message(opts) {
warn!("{message}");
}
self.install_compiling(ctx, tv, opts).await
} else {
if let Some(message) = node_flavor_not_found_message(opts) {
bail!("{message}\ncompilation is disabled")
}
bail!("precompiled node archive not found and compilation is disabled")
}
}
}
}
async fn install_windows(
&self,
ctx: &InstallContext,
tv: &mut ToolVersion,
opts: &BuildOpts,
) -> Result<()> {
match self
.fetch_binary(ctx, tv, opts, || self.extract_zip(opts, ctx))
.await?
{
FetchOutcome::Downloaded => {View on GitHub (pinned to afd2eddd3a)
Solutions
- Enable source compilation: `mise settings node.compile=true`
- Choose a Node version that has a precompiled build for your platform (check nodejs.org dist index for <version>/<platform-arch>)
- Install a matching toolchain/OS so a prebuilt archive exists (e.g. use glibc Linux or macOS instead of an exotic target)
Example fix
// before (mise.toml) [tools] node = "18.0.0" // prebuilt missing on this platform // after [tools] node = "18.18.2" // version with published prebuilt archive [settings] node.compile = true // alternative: allow source build
Defensive patterns
Strategy: fallback
Validate before calling
#!/usr/bin/env bash
ver=$(mise ls-remote node | grep -Fx "22.11.0")
curl -fsIL "https://nodejs.org/dist/v${ver}/node-v${ver}-$(node -p 'process.platform')-$(node -p 'process.arch').tar.gz" >/dev/null && echo "prebuilt available" || mise settings set node.compile true Try / catch
if ! mise install node@"$VER" 2>&1 | grep -q 'compilation is disabled'; then echo "installed" else mise settings set node.compile true && mise install node@"$VER" fi
Prevention
- Check nodejs.org/dist for the version/platform archive before pinning
- Pin versions with published prebuilt artifacts for all CI platforms
- Pre-enable node.compile in Dockerfiles building from source anyway
When it happens
Trigger: Calling `mise install node@<version>` (or a .tool-versions/.mise.toml pin) for a version/flavor whose precompiled archive returns 404 from nodejs.org, while settings node.compile is false (the default).
Common situations: Installing an old or very new Node version whose prebuilt binary for the current platform was never published or was removed; using an unusual node flavor (e.g. a specific release flavor) on an uncommon OS/arch; offline mirrors missing that archive.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- precompiled node archive not found and compilation is disabl
- {message} locked mode requires the locked precompiled artifa
- precompiled node archive not found and locked mode requires
- precompiled node archive not found (404)
- no precompiled python found for {tv} on {platform}
AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09).
Data as JSON: /api/errors/111b159942b93605.
Report an issue: GitHub.