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
- Run `mise ls-remote packslip:<project>` to see versions the vendor actually lists and pick one
- Correct the version string in mise.toml / mise.lock / CI pin
- 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
- Run `mise ls-remote` to confirm a version exists before pinning it
- Use version ranges/prefixes resolved by mise rather than hand-typed exact versions
- Regenerate lockfiles when vendors republish lists
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
- packslip plugin version must not be empty
- no version specified for tool {tool}\nuse `mise shell {tool}
- must not record a pin before replacement succeeds
- trimV requires exactly 1 argument
- packslip:{tool_name} is not a project name; use github.com/o
AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09).
Data as JSON: /api/errors/61d39e8ebbccb437.
Report an issue: GitHub.