jdx/mise · error · eyre::Report

No matching complete lockfile artifact list found for {} on

Error message

No matching complete lockfile artifact list found for {} on platform {} (--locked mode)

What it means

In --locked mode the github backend must resolve every configured artifact from the lockfile for reproducibility. When a tool has additional artifact patterns (or locked additional artifacts exist) but no complete matching artifact list could be found for the current platform, it bails rather than falling back to live pattern matching, which would violate the lock.

Source

Thrown at src/backend/github.rs:727

                    &additional_patterns,
                    &platform.additional_artifacts,
                ) =>
            {
                platform
                    .additional_artifacts
                    .iter()
                    .map(|artifact| ReleaseAsset {
                        name: get_filename_from_url(&artifact.url),
                        url: artifact.url.clone(),
                        url_api: artifact.url_api.clone().unwrap_or_default(),
                        digest: None,
                    })
                    .collect()
            }
            _ if ctx.locked
                && (!additional_patterns.is_empty() || locked_additional_artifacts_present) =>
            {
                eyre::bail!(
                    "No matching complete lockfile artifact list found for {} on platform {} (--locked mode)",
                    tv.style(),
                    platform_key
                )
            }
            _ => {
                let mut assets = Vec::new();
                for pattern in &additional_patterns {
                    assets.push(
                        self.resolve_asset_url_for_target_with_pattern(
                            &tv,
                            &opts,
                            &repo,
                            &current_target,
                            Some(pattern),
                        )
                        .await?,
                    );

View on GitHub (pinned to 6f52dcdf99)

Solutions

  1. Run `mise lock` with the current config (on the failing platform) to record the artifact list, then retry
  2. Commit the regenerated mise.lock alongside the pattern change
  3. If intentional, drop --locked / settings.locked for this install or remove the additional_artifacts patterns

Example fix

# before
mise install --locked   # fails: new pattern not locked
# after
mise lock && mise install --locked
Defensive patterns

Strategy: validation

Validate before calling

# CI gate: lock must succeed and lockfile must exist before a locked install
mise lock --additional-artifacts && test -f mise.lock && mise install --locked

Prevention

When it happens

Trigger: Running `mise install --locked` (or settings.locked = true) for a github: tool where `additional_artifacts` patterns are configured in mise.toml but the lockfile (mise.lock) has no complete artifact entry set for the current platform key — never locked on this platform, patterns added after the last `mise lock`, or a lockfile generated on another OS/arch.

Common situations: Adding `additional_artifacts = ["..."]` to a tool and forgetting to re-run `mise lock`; sharing mise.lock across a team where it was generated only on macOS and a Linux CI runs --locked; renaming patterns so old lock entries no longer match.

Related errors


AI-assisted analysis of jdx/mise@6f52dcdf99 (2026-08-22). Data as JSON: /api/errors/22a00115d35fe414. Report an issue: GitHub.