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
- Re-run `mise lock` to refresh the locked artifact URL/checksum once upstream publishes it
- Switch to a Node version with published precompiled assets for your platform
- Unlock (regenerate mise.lock without locked constraints) to permit source-compilation fallback
- 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
- Re-lock before installing brand-new Node versions
- Only lock on platforms with published Node binaries
- Keep node_compile enabled unless locked installs are verified to work
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
- {message} locked mode requires the locked precompiled artifa
- {message}\ncompilation is disabled
- precompiled node archive not found and compilation is disabl
- no precompiled ruby is available for this platform To compil
- version should not be 'latest' for node, something is wrong
AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09).
Data as JSON: /api/errors/28bf2ac578b1947a.
Report an issue: GitHub.