jdx/mise · error

compilation is disabled

Error message

{message}
compilation is disabled

What it means

When the node precompiled archive is not found, compilation is disabled (node_compile = false), and a flavor message exists, the error combines the flavor explanation with 'compilation is disabled', since no install path remains.

Solutions

  1. Enable compilation (remove node.compile=false / unset NODE_COMPILE) so mise can build from source
  2. Use a standard Node version with published precompiled builds for your platform
  3. Drop the flavor and use official node builds

Example fix

# before (mise.toml)
[settings]
node.compile = false

# after
[settings]
# node.compile removed — allow source fallback
Defensive patterns

Strategy: fallback

Validate before calling

# ensure compile isn't globally disabled when using flavored/odd node versions
mise settings get node.compile; curl -sfIL "https://nodejs.org/dist/v20.0.0/node-v20.0.0-linux-x64.tar.gz"

Try / catch

mise install node@X || { mise settings set node.compile true && mise install node@X; }

Prevention

When it happens

Trigger: Node flavor's precompiled archive missing AND settings set node compile to false, so neither the download nor the source-build fallback can proceed.

Common situations: Users who set NODE_COMPILE=false (or mise settings node.compile=false) for speed, then request a flavored/odd Node version with no published binary on their platform.

Understand the failure class

Background: "unsupported platform" / "not supported on this platform" errors: what they mean and how to fix them — this error's family across 47 libraries.

Related errors


AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17). Data as JSON: /api/errors/2067506e5e2f19fa. Report an issue: GitHub.

Appendix: 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 533346cc37)