jdx/mise · error
unsupported aqua package type
Error message
unsupported aqua package type: {t} What it means
The aqua URL builder handles a known set of package types (github_release, github_content, github_archive, http, ...). When it encounters a package type it does not implement, it throws this error listing the unhandled type, acting as an exhaustive-match guard so new upstream types fail loudly.
Solutions
- Upgrade mise to a version whose aqua backend supports the package type
- Fix the `type:` field in your custom registry/package config to one of the supported values (github_release, github_content, github_archive, http)
- If the type is genuinely new upstream, pin the package to an older registry entry or implement/request backend support
Example fix
# before - type: github_latest_release repo_owner: someowner repo_name: sometool # after (supported type) - type: github_release repo_owner: someowner repo_name: sometool
Defensive patterns
Strategy: try-catch
Validate before calling
const SUPPORTED_TYPES: &[&str] = &["github_release", "github_content", "github_archive", "http"];
if !SUPPORTED_TYPES.contains(&pkg.package_type_str()) {
return Err(anyhow!("unsupported aqua package type: {}", pkg.package_type_str()));
} Try / catch
match install(pkg).await {
Err(e) if e.to_string().starts_with("unsupported aqua package type") => {
eprintln!("upgrade mise or fix the package `type` field: {e}");
}
r => r?,
} Prevention
- Use only package types supported by your mise version; check release notes when upstream adds types
- Keep mise updated so newly supported aqua package types become available
- Validate `type:` values in custom registry entries against the supported list
When it happens
Trigger: An aqua package config (or a newly published aqua-registry entry) uses a package type variant not supported by this mise/aqua backend version, and the code path to build its asset URL is reached.
Common situations: Recently added upstream aqua package type (e.g. a new specialized content type) used by a registry entry you just started installing; typo'd `type:` value in a custom package definition; outdated mise that predates support for the type.
Related errors
- unsupported env: / (supported: )
- aqua package does not have repo_owner and/or repo_name.
- aqua var ` ` must be a string, got
- at least one bin path should exist
- automatic cross-platform provisioning is unavailable from a…
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/c61cfa0c0e27994e.
Report an issue: GitHub.
Appendix: source
Thrown at src/backend/aqua.rs:2274
if pkg.path.is_some() {
Ok((
self.github_content_url(pkg, v),
Some(self.github_content_api_url(pkg, v)),
false,
None,
))
} else {
bail!("github_content package requires `path`")
}
}
AquaPackageType::GithubArchive => Ok((
self.github_archive_url(pkg, v),
Some(self.github_archive_api_url(pkg, v)),
false,
None,
)),
AquaPackageType::Http => pkg.url(v, os(), arch()).map(|url| (url, None, false, None)),
ref t => bail!("unsupported aqua package type: {t}"),
}
}
async fn github_release_url(
&self,
pkg: &AquaPackage,
v: &str,
) -> Result<(String, Option<String>, Option<String>)> {
let target = PlatformTarget::from_current();
let asset_strs = pkg.asset_strs(v, os(), arch())?;
self.github_release_asset_for_target(pkg, v, asset_strs, &target)
.await
}
/// Resolve a GitHub release asset to `(canonical_url, transport_url)`.
///
/// `canonical_url` is the browser download URL (`github.com/.../releases/download/...`),
/// which carries the real asset filename — use it for filename derivation and for anyView on GitHub (pinned to 533346cc37)