jdx/mise · error

the release list of packslip:{project} has no version {}

Error message

the release list of packslip:{project} has no version {}

What it means

After obtaining the verified release list, mise looks up the requested version among `list.predicate.releases`. If no entry matches the requested version, the list is authoritative: the vendor never published (or no longer lists) that version, so mise bails instead of falling back to unsigned sources.

Source

Thrown at src/backend/packslip.rs:725

                .find(|r| r.version == tv.version)
            else {
                return Ok(None);
            };
            refuse_if_withdrawn(project, &tv.version, entry)?;
            return Ok(Some(Located {
                headers: headers_for(&entry.packslip)?,
                url: entry.packslip.clone(),
                digest: list.digest_of(&entry.packslip).map(str::to_string),
            }));
        }
        let list = self.release_list(project, pin, opts).await?;
        let Some(entry) = list
            .predicate
            .releases
            .iter()
            .find(|r| r.version == tv.version)
        else {
            bail!(
                "the release list of packslip:{project} has no version {}",
                tv.version
            );
        };
        refuse_if_withdrawn(project, &tv.version, entry)?;
        Ok(Some(Located {
            url: entry.packslip.clone(),
            headers: HeaderMap::new(),
            digest: list.digest_of(&entry.packslip).map(str::to_string),
        }))
    }

    async fn locate_bundle(
        &self,
        project: &str,
        tv: &ToolVersion,
        pin: &Pin,
        opts: &PackslipOptions<'_>,

View on GitHub (pinned to afd2eddd3a)

Solutions

  1. Run `mise ls-remote packslip:<project>` to see versions the vendor actually lists and pick one
  2. Correct the version string in mise.toml / mise.lock / CI pin
  3. Ask the vendor to re-list the version if it genuinely existed and was dropped in error

Example fix

// before (mise.toml)
[tools."packslip:acme"]
version = "9.9.9"
// after
[tools."packslip:acme"]
version = "1.2.4"
Defensive patterns

Strategy: validation

Validate before calling

const listed = mise.lsRemote("packslip:acme");
if (!listed.includes(requestedVersion)) {
  throw new Error(`${requestedVersion} is not in the vendor's release list`);
}

Prevention

When it happens

Trigger: Calling `vendor_entry` (from `locate_bundle`, `candidate_exclusion`, or `install_payload`) when no entry in `list.predicate.releases` has a version equal to the requested tool version.

Common situations: A typo'd or nonexistent version in mise.toml or a lockfile; requesting a very old version the vendor dropped from the list; a version exists only in a newer/older list not currently published.

Understand the failure class

Background: Record Not Found Errors: "not found", RecordNotFound, and "was not found" — what they mean and how to fix them — this error's family across 28 libraries.

Related errors


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