jdx/mise · error
unsupported env: / (supported: )
Error message
unsupported env: {}/{} (supported: {:?}) What it means
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.
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
Example fix
// before (mise.toml, on darwin/arm64)
[tools]
"aqua:linux-only-tool" = "latest" // supported_envs: [linux/amd64]
// after
[tools]
linux-only-tool = { version = "latest", backend = "cargo:linux_only_tool" } Defensive patterns
Strategy: fallback
Validate before calling
// check platform support before installing
const env = `${process.platform}/${process.arch}`; // map to aqua env names
const supported = entry.supported_envs ?? [];
if (supported.length && !supported.some(s => s === env || s === env.split('/')[0])) {
console.warn(`${tool} does not support ${env}; use a source-building backend`);
} Try / catch
catch (e) {
if (String(e).includes('unsupported env')) {
console.error(`No binary for ${os}/${arch}; install via cargo/go backend or build from source.`);
}
} Prevention
- 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
When it happens
Trigger: 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).
Common situations: 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).
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
- managed system files are only supported on Unix
- only available on macos
- unsupported aqua package type
- aqua package does not have repo_owner and/or repo_name.
- aqua var ` ` must be a string, got
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/f32b9f3c2fffa027.
Report an issue: GitHub.
Appendix: source
Thrown at src/backend/aqua.rs:5131
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 533346cc37)