{"record":{"id":"f32b9f3c2fffa027","repo":"jdx/mise","slug":"unsupported-env-supported","errorCode":null,"errorMessage":"unsupported env: {}/{} (supported: {:?})","messagePattern":"unsupported env: (.+?)/(.+?) \\(supported: (.+?)\\)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/backend/aqua.rs","lineNumber":5131,"sourceCode":"    let releases = github::list_releases_including_prereleases(&repo).await?;\n    Ok(releases\n        .into_iter()\n        .map(|r| {\n            let released_at = r.released_at().to_string();\n            (r.tag_name, Some(released_at), Some(r.prerelease))\n        })\n        .collect())\n}\n\nfn validate(pkg: &AquaPackage, version: &str) -> Result<()> {\n    if pkg.no_asset.unwrap_or(false) {\n        bail!(\"no asset released\");\n    }\n    if let Some(message) = &pkg.error_message {\n        bail!(\"{}\", message);\n    }\n    if !is_platform_supported(&pkg.supported_envs, os(), arch()) {\n        bail!(\n            \"unsupported env: {}/{} (supported: {:?})\",\n            os(),\n            arch(),\n            pkg.supported_envs\n        );\n    }\n    match pkg.package_type() {\n        AquaPackageType::Cargo => {\n            bail!(\n                \"package type `cargo` is not supported in the aqua backend. Use the cargo backend instead{}.\",\n                pkg.crate_name\n                    .as_deref()\n                    .filter(|name| !name.is_empty())\n                    .or_else(|| {\n                        pkg.name\n                            .as_deref()\n                            .and_then(|s| s.strip_prefix(\"crates.io/\"))\n                    })","sourceCodeStart":5113,"sourceCodeEnd":5149,"githubUrl":"https://github.com/jdx/mise/blob/533346cc374382b41ec5ff70536252b2e96e725c/src/backend/aqua.rs#L5113-L5149","documentation":"Aqua registry entries constrain the platforms a package supports via `supported_envs` (e.g. only linux/amd64, darwin/arm64). `validate()` checks the current OS/arch against these constraints and rejects installation when the running platform is not listed, so mise won't attempt to download an asset that doesn't exist for your platform.","triggerScenarios":"Installing an aqua package on an OS/arch the registry entry doesn't list — e.g. a darwin/arm64 machine when the registry only declares linux/amd64, or windows when the tool has no Windows build; also with non-default os/arch overrides (e.g. Rosetta, cross installs).","commonSituations":"New Apple Silicon machines where tools only published Intel builds; BSD or Windows targets with Linux-only tools; running mise under an unusual architecture (armv6, i386).","solutions":["Install the tool via another backend that builds from source (e.g. `mise use cargo:name`, `mise use go:pkg/path`, github backend)","Choose a different version of the tool that added support for your platform","If the tool does support your platform but the registry entry is stale, update mise or fix/PR the aqua registry entry's supported_envs","Run under platform emulation only if the entry explicitly lists that env"],"exampleFix":"// before (mise.toml, on darwin/arm64)\n[tools]\n\"aqua:linux-only-tool\" = \"latest\"  // supported_envs: [linux/amd64]\n\n// after\n[tools]\nlinux-only-tool = { version = \"latest\", backend = \"cargo:linux_only_tool\" }","handlingStrategy":"fallback","validationCode":"// check platform support before installing\nconst env = `${process.platform}/${process.arch}`; // map to aqua env names\nconst supported = entry.supported_envs ?? [];\nif (supported.length && !supported.some(s => s === env || s === env.split('/')[0])) {\n  console.warn(`${tool} does not support ${env}; use a source-building backend`);\n}","typeGuard":null,"tryCatchPattern":"catch (e) {\n  if (String(e).includes('unsupported env')) {\n    console.error(`No binary for ${os}/${arch}; install via cargo/go backend or build from source.`);\n  }\n}","preventionTips":["Check the tool's release assets for your OS/arch before adding it to mise.toml","On Apple Silicon, verify arm64 assets exist (or plan Rosetta/x86 fallbacks)","Keep a source-build fallback (cargo:/go:) for platform-restricted tools"],"tags":["aqua","platform","unsupported"],"backgroundTag":"unsupported-platform","analyzedSha":"533346cc374382b41ec5ff70536252b2e96e725c","analyzedAt":"2026-09-17T13:35:38.149Z","contentChangedAt":"2026-09-17T13:35:38.149Z","schemaVersion":2},"datasetVersion":"2026-09-23T08:17:48.524Z"}