jdx/mise · error
the packslip of {} declares a {shell} completion, but none o
Error message
the packslip of {} declares a {shell} completion, but none of the files it names are in the install: the resource fetch failed or was skipped What it means
The tool's packslip statement declares that it ships a completion for this shell, but completion_sources() found none of the named completion files actually present in the install directory. This means the resource fetch that should have copied those files into the install failed or was skipped, leaving the declared resources missing on disk.
Source
Thrown at src/packslip.rs:1170
bail!(
"{} was not installed from a packslip, so mise does not know its completions",
tv.style()
);
};
let artifact = selected_artifact(
&statement,
tv.request.options().get_string("variant").as_deref(),
);
let sources = completion_sources(
&statement,
&install_path,
shell,
artifact.as_ref(),
Some(tool),
);
if sources.is_empty() {
if declares_completion(&statement, shell) {
bail!(
"the packslip of {} declares a {shell} completion, but none of the files it names are in the install: the resource fetch failed or was skipped",
tv.style()
);
}
bail!(
"the packslip of {} declares no {shell} completion",
tv.style()
);
}
// A completion is asked for the moment a shell completes the command,
// which is when the user was going to run it anyway, so an `exec`
// source runs on demand with no setting; the specification's Running
// an exec entry says so. Because it runs the tool, its result is
// cached beside the install so the command runs once per version and
// shell rather than at every tab.
let bin = completion_bin(&statement, Some(tool)).ok_or_else(|| {
eyre!(
"{} provides several executables; name the command to complete",View on GitHub (pinned to afd2eddd3a)
Solutions
- Reinstall the tool so resources are fetched: `mise uninstall <tool> && mise install <tool>`.
- Check install logs with MISE_DEBUG=1 during install to see why the resource fetch failed or was skipped.
- Verify network access and that the release's resources are downloadable; then reinstall.
- If a variant option is set, confirm the variant's resources exist in the packslip.
Example fix
// before: partial install, resources missing mise install gh mise completion bash --tool gh # fails // after mise uninstall gh && mise install gh mise completion bash --tool gh
Defensive patterns
Strategy: retry
Validate before calling
let files = declared_completion_files(&statement, install_path);
let missing: Vec<_> = files.iter().filter(|f| !f.exists()).collect();
if !missing.is_empty() { eprintln!("resources missing: {missing:?}; reinstall"); } Type guard
fn resources_present(install: &Path, shell: &str) -> bool {
install.join("resources").join("completions").join(shell).exists()
} Try / catch
loop {
match completion_script(&config, tool, shell) {
Ok(s) => break Ok(s),
Err(e) if e.to_string().contains("resource fetch failed or was skipped") => { reinstall(tool)?; continue; }
Err(e) => break Err(e),
}
} Prevention
- Ensure stable network access during installs so resource fetches are not skipped.
- Check install output for resource-fetch warnings before using completions.
- Reinstall after interrupted or offline installs.
When it happens
Trigger: Running `mise completion <shell> --tool <tool>` where declares_completion(&statement, shell) is true but the files the packslip names do not exist under the install path — e.g. the resource fetch was interrupted, skipped for a variant mismatch, or failed during install.
Common situations: Install completed with resource download failures; installing a variant whose resources were not fetched; read-only or partially-extracted installs; offline installs that skipped resources.
Understand the failure class
Background: "File not found" and ENOENT errors: why libraries can't find a file that should exist — this error's family across 50 libraries.
Related errors
- the packslip gives no download URL for {}
- the packslip names an artifact {:?}, which is not a plain fi
- mise cannot derive completions from a {format} spec
- invalid completion cache identity
- {} was not installed from a packslip, so mise does not know
AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09).
Data as JSON: /api/errors/2515fee62ff20ac1.
Report an issue: GitHub.