jdx/mise · error
{}
Error message
{} What it means
Aqua registry entries can carry an `error_message` field that registry maintainers set to explain why a package cannot be used (deprecated, moved, renamed, requires migration). When validate() sees it, it bails with the message verbatim (bail!("{}")), so the text you get is the registry's own explanation.
Source
Thrown at src/backend/aqua.rs:5003
return Ok(versions.into_iter().map(|v| (v, None, None)).collect());
}
let repo = format!("{}/{}", pkg.repo_owner, pkg.repo_name);
let releases = github::list_releases_including_prereleases(&repo).await?;
Ok(releases
.into_iter()
.map(|r| {
let released_at = r.released_at().to_string();
(r.tag_name, Some(released_at), Some(r.prerelease))
})
.collect())
}
fn validate(pkg: &AquaPackage, version: &str) -> Result<()> {
if pkg.no_asset.unwrap_or(false) {
bail!("no asset released");
}
if let Some(message) = &pkg.error_message {
bail!("{}", message);
}
if !is_platform_supported(&pkg.supported_envs, os(), arch()) {
bail!(
"unsupported env: {}/{} (supported: {:?})",
os(),
arch(),
pkg.supported_envs
);
}
match pkg.package_type() {
AquaPackageType::Cargo => {
bail!(
"package type `cargo` is not supported in the aqua backend. Use the cargo backend instead{}.",
pkg.crate_name
.as_deref()
.filter(|name| !name.is_empty())
.or_else(|| {
pkg.nameView on GitHub (pinned to afd2eddd3a)
Solutions
- Read the error_message text — it usually names the replacement package or reason
- Switch mise.toml to the replacement tool/package named in the message
- Update mise to refresh the embedded registry in case the entry was fixed upstream
- Check the upstream repository's status (archived/renamed) and migrate accordingly
Example fix
// before [tools] aqua:old-owner/renamed-tool = "latest" // after (per the registry's error_message) [tools] aqua:new-owner/renamed-tool = "latest"
Defensive patterns
Strategy: try-catch
Validate before calling
// surface the registry's error_message before attempting install
const pkg = await fetchAquaRegistryEntry(pkgName);
if (pkg.error_message) {
console.warn(`aqua registry says: ${pkg.error_message} — migrate before installing`);
} Try / catch
try {
await $`mise install`;
} catch (e) {
const msg = String(e);
if (!msg.includes("unsupported env") && msg.includes("Use") === false && msg.length < 300) {
// likely a registry error_message; read it and switch to the recommended replacement
console.error("registry says:", msg);
} else throw e;
} Prevention
- Read the error text — it is the aqua registry's own migration/deprecation notice
- Check the upstream repo for renames/archives when a pinned tool suddenly errors
- Periodically run `mise upgrade` yourself to catch registry migration notices early
When it happens
Trigger: Installing an aqua package whose AquaPackage.error_message is Some (src/backend/aqua.rs:5003); the check runs for every install/resolution of that package.
Common situations: Tool was deprecated or archived upstream; the registry entry points to a moved repository and instructs users to use a new name; a package is temporarily disabled by aqua maintainers.
Related errors
- failed to parse registry option {k} as a TOML value: {e}
- unexpected character: {}
- expected closing parenthesis
- conflicting aqua var `{key}`: use only one spelling
- No lockfile URL found for {} on platform {} (--locked mode r
AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09).
Data as JSON: /api/errors/4ce8edc748820320.
Report an issue: GitHub.