jdx/mise · error

{message} locked mode requires the locked precompiled artifa

Error message

{message}
locked mode requires the locked precompiled artifact

What it means

When Node's precompiled archive could not be found and mise is in locked mode (a mise.lock exists / locked install), falling back to compilation is forbidden — locked installs must produce exactly the locked artifact. mise throws this with the flavor-specific not-found message (if the flavor explains it) appended by the locked-mode requirement line. Thrown in install_precompiled on FetchOutcome::NotFound when node_flavor_not_found_message returns Some.

Source

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

                    ExtractionFormat::TarGz,
                    &ExtractOptions {
                        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")
                }
            }
        }
    }

View on GitHub (pinned to afd2eddd3a)

Solutions

  1. Run `mise lock` (or unlock) to refresh the lockfile once the artifact is published upstream
  2. Choose a Node version whose locked artifact is actually published for your platform
  3. If you don't need locked reproducibility, unlock or remove the lock entry to allow source compilation
  4. Check the flavor message for specifics and switch to the standard Node distribution if the flavor is discontinued
Defensive patterns

Strategy: fallback

Validate before calling

# check the locked artifact exists upstream before locked install
mise lock --update  # or verify the asset URL returns 200

Try / catch

catch (e) {
  if (String(e).includes("locked mode requires the locked precompiled artifact")) {
    // re-lock or unlock and retry
  }
}

Prevention

When it happens

Trigger: `mise install node` with locked mode active, the locked Node version/flavor has no precompiled archive available upstream (e.g. unofficial builds/flavors like node-org-builds, recent version without assets yet, or unsupported platform), and a flavor message is generated.

Common situations: Newly released Node version whose binaries aren't published yet in CI; node flavor configs (e.g. specific vendors) with no published artifact for the platform; offline/restricted networks making the artifact lookup fail while locked.

Related errors


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