jdx/mise · error

{error}

Error message

{error}

What it means

Inside the current-check phase of lockfile generation (`is_current`), mise validates that each stored lockfile entry still matches reality — including checking artifact integrity metadata such as stored backend, options key, and provenance against what the backend reports. When that per-entry validation returns an error, it is re-thrown verbatim here, marking the lockfile entry as not current so generation rebuilds it.

Solutions

  1. Read the inner `{error}` message — it names the specific validation (provenance, backend, or key) that failed.
  2. Regenerate the affected entries with `mise lock` so fresh metadata and provenance are recorded.
  3. Restore the lockfile/sidecars from git if they were manually edited, or upgrade mise if the backend's provenance format changed.
Defensive patterns

Strategy: retry

Prevention

When it happens

Trigger: Running a command whose current-lockfile check inspects cached artifacts/provenance when the stored metadata is stale or invalid — e.g. provenance URL/attestation fails validation, the stored backend id no longer matches, or artifact metadata fails integrity checks.

Common situations: Upgrading/downgrading tools that changed their release provenance format; manually tampered or partially restored lockfile sidecars; backend changes between mise versions altering how metadata is keyed.

Understand the failure class

Background: Checksum mismatch errors: "checksum verification failed", "digest mismatch", "expected vs actual checksum" — what they mean and how to fix them — this error's family across 41 libraries.

Related errors


AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17). Data as JSON: /api/errors/4d019982fe09fc83. Report an issue: GitHub.

Appendix: source

Thrown at src/lockfile/generate.rs:335

                    continue;
                }
                let key = platform.to_key();
                let Some(info) = entry.platforms.get(&key) else {
                    return Ok(false);
                };
                if !bindings_current || !can_reuse(info) {
                    return Ok(false);
                }
                validate_provenance_settings(ba, tv, &key, info)?;
                if let Some(error) = check_single_tool_provenance(
                    Some(entries),
                    &ba.short,
                    &tv.version,
                    &stored_backend,
                    &key,
                    info.provenance.as_ref(),
                ) {
                    bail!("{error}");
                }
                covered.entry(index).or_default().insert(key);
            }
        }
        // Extra versions, option variants, or platforms must still be pruned.
        // Counting distinct entries also rejects duplicate version/option rows.
        if covered.is_empty()
            || covered.len() != entries.len()
            || covered
                .iter()
                .any(|(index, keys)| keys.len() != entries[*index].platforms.len())
        {
            return Ok(false);
        }
    }
    Ok(true)
}

View on GitHub (pinned to 533346cc37)