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

  1. Upgrade mise to a version whose aqua backend supports the package type
  2. Fix the `type:` field in your custom registry/package config to one of the supported values (github_release, github_content, github_archive, http)
  3. 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

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


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 any

View on GitHub (pinned to 533346cc37)