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,
¤t_target,
Some(pattern),
)
.await?,
);View on GitHub (pinned to 6f52dcdf99)
Solutions
- Run `mise lock` with the current config (on the failing platform) to record the artifact list, then retry
- Commit the regenerated mise.lock alongside the pattern change
- 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
- Re-run `mise lock` whenever additional_artifacts patterns change and commit mise.lock
- Run `mise lock` on every platform in your matrix so all platform keys exist
- Make `mise install --locked` a CI step that fails fast on stale locks
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
- Invalid checksum: {checksum}
- Size mismatch for {}: expected {}, got {}
- additional asset '{}' is not an archive
- locked mode requires lockfile to be enabled hint: Remove `lo
- No lockfile URL found for {} on platform {} (--locked mode)
AI-assisted analysis of jdx/mise@6f52dcdf99 (2026-08-22).
Data as JSON: /api/errors/22a00115d35fe414.
Report an issue: GitHub.