jdx/mise · error

unsupported env: {}/{} (supported: {:?})

Error message

unsupported env: {}/{} (supported: {:?})

What it means

Each aqua registry package can restrict which OS/arch combinations it supports via `supported_envs`. validate() checks the current runtime environment (os(), arch()) against that list and bails with 'unsupported env: <os>/<arch> (supported: [...])' when the current platform is not in it.

Source

Thrown at src/backend/aqua.rs:5006

    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.name
                            .as_deref()
                            .and_then(|s| s.strip_prefix("crates.io/"))
                    })

View on GitHub (pinned to afd2eddd3a)

Solutions

  1. Install via emulation/compat layer (e.g. Rosetta on Apple Silicon) and configure mise's arch override if applicable
  2. Use a different backend that can build the tool from source for your platform
  3. Check the printed supported list and switch to a tool version or fork with assets for your platform
  4. Update mise — newer registry entries may have broadened supported_envs

Example fix

# before — unsupported on linux/arm64
[tools]
aqua:owner/repo = "latest"

# after — build from source for the platform
[tools]
cargo:owner-repo-cli = "latest"
Defensive patterns

Strategy: validation

Validate before calling

// check platform support before installing on this machine
const pkg = await fetchAquaRegistryEntry(pkgName);
const env = `${process.platform === "darwin" ? "darwin" : "linux"}/${process.arch === "arm64" ? "arm64" : "amd64"}`;
if (pkg.supported_envs?.length && !pkg.supported_envs.some(e => e === env || e === env.split("/")[0] + "/*")) {
  console.warn(`${pkgName} does not support ${env}; supported: ${pkg.supported_envs}`);
}

Try / catch

try {
  await $`mise install aqua:owner/repo`;
} catch (e) {
  if (String(e).includes("unsupported env:")) {
    // switch to a source build for this platform
    await $`mise use cargo:${crateName}`;
  } else throw e;
}

Prevention

When it happens

Trigger: Installing an aqua package on a platform the registry entry excludes (src/backend/aqua.rs:5006), e.g. linux-arm64 for a tool that only ships x86_64 binaries, or windows when the entry lists only unix targets.

Common situations: Running mise on ARM Linux/macOS for tools with x86_64-only releases; Windows where the project publishes no Windows binaries; musl vs glibc-style restrictions encoded in supported_envs; FreeBSD/other niche platforms.

Understand the failure class

Background: "unsupported platform" / "not supported on this platform" errors: what they mean and how to fix them — this error's family across 47 libraries.

Related errors


AI-assisted analysis of jdx/mise@afd2eddd3a (2026-09-09). Data as JSON: /api/errors/f32b9f3c2fffa027. Report an issue: GitHub.