jdx/mise · error

precompiled node archive not found and locked mode requires

Error message

precompiled node archive not found and locked mode requires the locked precompiled artifact

What it means

Same locked-mode Node path as the flavor variant, but this fires when no flavor-specific message applies: the precompiled Node archive was not found and locked mode forbids any fallback (such as compiling from source), so mise aborts with the generic message. Thrown in install_precompiled on FetchOutcome::NotFound when ctx.locked is true.

Source

Thrown at src/plugins/core/node.rs:138

                        strip_components: 1,
                        pr: Some(ctx.pr.as_ref()),
                        ..Default::default()
                    },
                )?;
                Ok(())
            })
            .await?
        {
            FetchOutcome::Downloaded => {
                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(

View on GitHub (pinned to afd2eddd3a)

Solutions

  1. Re-run `mise lock` to refresh the locked artifact URL/checksum once upstream publishes it
  2. Switch to a Node version with published precompiled assets for your platform
  3. Unlock (regenerate mise.lock without locked constraints) to permit source-compilation fallback
  4. Verify the platform/arch is one Node publishes binaries for (linux/mac/windows, x64/arm64)
Defensive patterns

Strategy: fallback

Validate before calling

# confirm the platform has precompiled node binaries before locked install
mise settings get node_compile  # ensure a source fallback is permitted if needed

Try / catch

catch (e) {
  if (String(e).includes("precompiled node archive not found and locked mode")) {
    // run `mise lock` to refresh, or unlock to allow compiling
  }
}

Prevention

When it happens

Trigger: Locked `mise install node` where the locked version has no downloadable precompiled archive for the current platform (asset missing upstream, unsupported platform/arch, or upstream 404) and node_compile fallback doesn't apply.

Common situations: Very new Node release not yet built upstream; platform without published binaries; misconfigured lock entry pointing at a version whose assets were removed; CI environments with locked installs hitting missing artifacts.

Related errors


AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09). Data as JSON: /api/errors/28bf2ac578b1947a. Report an issue: GitHub.