jdx/mise · error
the signed release list of packslip:{project} disappeared; r
Error message
the signed release list of packslip:{project} disappeared; restore the list or explicitly forget this project's packslip pin What it means
mise remembers that a project's signed packslip release list was accepted (an entry exists in the pins file). If the list later cannot be found at all, this error fires rather than silently treating the absence as 'no releases', because a missing list would drop recorded yanks.
Source
Thrown at src/packslip_pins.rs:233
);
}
if pins.sequences.get(project) != Some(&sequence) {
pins.sequences.insert(project.to_string(), sequence);
save(path, &pins)?;
}
Ok(())
}
/// An absent supplementary list is allowed only before this machine has
/// accepted one. Its disappearance must not undo signed withdrawals.
pub(crate) fn check_missing_list(project: &str) -> Result<()> {
check_missing_list_at(&pins_file(), project)
}
fn check_missing_list_at(path: &Path, project: &str) -> Result<()> {
let _lock = locked(path)?;
if load(path)?.sequences.contains_key(project) {
bail!(
"the signed release list of packslip:{project} disappeared; restore the list or explicitly forget this project's packslip pin"
);
}
Ok(())
}
/// Every pin, by project.
pub(crate) fn list() -> Result<BTreeMap<String, Pin>> {
Ok(load(&pins_file())?.pins)
}
/// Drop a project's pin and sequence, so the next release accepted sets
/// them again. Returns whether there was one.
pub(crate) fn forget(project: &str) -> Result<bool> {
forget_at(&pins_file(), project)
}
pub(crate) fn forget_at(path: &Path, project: &str) -> Result<bool> {View on GitHub (pinned to afd2eddd3a)
Solutions
- Restore the signed release list at the expected upstream location
- Run the command that explicitly forgets the project's packslip pin (e.g. remove the pins entry via the documented reset flow)
- Fix the project name/URL typo causing the 404
- Re-point mise at the correct registry host
Example fix
// before: stale pin for a removed project mise install aqua:org/removed-tool # errors // after: explicitly forget the pin mise config reset packslip-pin org/removed-tool # or delete the pins entry for that project mise install aqua:org/removed-tool
Defensive patterns
Strategy: validation
Validate before calling
if pins_file_has_sequence(project) && head_request(list_url(project)).status == 404 {
eprintln!("{project} list is gone; restore it or forget the pin before running install");
} Try / catch
match result {
Err(e) if e.to_string().contains("disappeared") => {
forget_packslip_pin(project)?; // only if removal is intentional
}
other => other?,
} Prevention
- Verify the upstream list URL still resolves before upgrading mise
- Forget pins for projects you know were removed from the registry
- Check for project renames in registry changelogs
- Fix project-name typos before first install so no stale pin is created
When it happens
Trigger: check_missing_list_at is called during packslip verification while the pins file still contains a sequence entry for the project but the upstream list now returns 404 or is otherwise unavailable.
Common situations: A registry removed or renamed its release list file; a tool was removed from the registry; a typo in the project name after the project was previously verified; network path serves 404 for an existing list.
Understand the failure class
Background: 'Could not be found', 'does not exist', 'not found in database': the resource-not-found family when an ID, slug, key, or URI lookup comes back empty — this error's family across 20 libraries.
Related errors
- the release list of packslip:{project} has sequence {sequenc
- packslip:{project}: this release {}. If the vendor announce
- the stamp list from {host} for {project} has sequence {seque
- the stamp list at {url} is for {}, not {project}
- registry archive contains too many entries
AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09).
Data as JSON: /api/errors/a2f209efbab1ecd8.
Report an issue: GitHub.