jdx/mise · error
archive does not contain registry entries
Error message
archive does not contain registry entries
What it means
mise downloads and parses a registry archive, collecting TOML sources for every registry entry file it finds. If no registry entry files are found after iterating the archive, it refuses to build an empty registry and raises this error. An empty registry is treated as an error (rather than silently working with zero tools) so distribution or packaging problems surface immediately.
Source
Thrown at src/registry.rs:360
}
let file_path = PathBuf::from(components[1]);
if file_path
.extension()
.is_none_or(|extension| extension != "toml")
{
continue;
}
let short = file_path
.file_stem()
.and_then(|stem| stem.to_str())
.ok_or_else(|| eyre::eyre!("invalid registry filename: {}", path.display()))?
.to_string();
let mut source = String::new();
entry.read_to_string(&mut source)?;
sources.insert(short, source);
}
ensure!(
!sources.is_empty(),
"archive does not contain registry entries"
);
registry_from_sources(sources)
}
fn track_registry_archive_entry(
index: usize,
entry_size: u64,
archive_size: &mut u64,
) -> Result<()> {
ensure!(
index < MAX_REGISTRY_ARCHIVE_ENTRIES,
"registry archive contains too many entries"
);
ensure!(
entry_size <= MAX_REGISTRY_ARCHIVE_ENTRY_SIZE,
"registry archive entry is too large"View on GitHub (pinned to afd2eddd3a)
Solutions
- Re-download the registry archive (clear mise's cache, e.g. `mise cache clear`) in case of a truncated/empty download.
- Verify the archive actually contains registry TOML files: `tar -tzf registry.tar.gz | head`.
- If you publish the registry, fix the packaging step to include the registry entry files at the expected location.
- Check the configured registry URL/short-name source points at the real registry archive, not an unrelated file.
Defensive patterns
Strategy: retry
Validate before calling
# shell: confirm the archive is non-empty and contains TOML entries before use tar -tzf registry.tar.gz | grep -q '\.toml$' && echo OK || echo 'REJECTED: no registry entries'
Prevention
- Retry registry downloads and clear the mise cache on failure to avoid cached empty archives.
- Verify registry packaging includes at least one entry TOML before uploading.
- Pin or verify the registry source URL to avoid proxy-served empty responses.
When it happens
Trigger: Calling download_registry_archive/refresh (or the test helper load path) with an archive that contains only non-registry files, an empty tarball, or entries outside the expected registry directory.
Common situations: The registry publisher packaged the wrong directory, the archive was truncated/empty due to a failed upload or proxy caching an empty response, or the short-name mapping skipped all entries because files live in unexpected subdirectories.
Understand the failure class
Background: EmptyResultError / "no results found": when an API or scraper succeeds but returns zero rows — this error's family across 9 libraries.
Related errors
- missing archive reference
- version_order must be "source" or "semver"
- vfox plugin archive contains a link or special file
- vfox plugin archive must contain metadata.lua at its root
- registry archive contains too many entries
AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09).
Data as JSON: /api/errors/76d3e1d7dc29ae7f.
Report an issue: GitHub.