jdx/mise · error
unsupported OS version
Error message
unsupported OS version: {os_ver} What it means
linux_precompiled_os_version maps the running Linux distribution to an Erlang/OTP precompiled build target. Only ubuntu-20.04, ubuntu-22.04 and ubuntu-24.04 are supported automatically; anything else (other distros, non-Ubuntu glibc systems) fails fast with this error instead of downloading an incompatible build.
Solutions
- Set erlang.precompiled_os in mise.toml to one of ubuntu-20.04, ubuntu-22.04 or ubuntu-24.04 to opt into a compatible glibc build
- Allow compiling from source instead of using precompiled builds (do not set compile = false)
- Run inside an Ubuntu 20.04/22.04/24.04 container or image
Example fix
// before (mise.toml) [erlang] // no precompiled target configured on Debian // after [settings.erlang] precompiled_os = "ubuntu-24.04"
Defensive patterns
Strategy: validation
Validate before calling
os_id=$(. /etc/os-release && echo "$ID-$VERSION_ID"); case "$os_id" in ubuntu-20.04|ubuntu-22.04|ubuntu-24.04) echo ok;; *) echo "set erlang.precompiled_os or allow compile";; esac
Prevention
- Pin CI to Ubuntu 20.04/22.04/24.04 images for Erlang installs
- Set erlang.precompiled_os explicitly when on a glibc distro compatible with Ubuntu builds
- Keep source-compilation available instead of forcing compile=false
When it happens
Trigger: Installing a precompiled Erlang version on Linux when the detected OS version string is not one of the three whitelisted Ubuntu versions, and the erlang.precompiled_os setting was not used to opt in.
Common situations: Running mise on Debian, Fedora, Arch, Alpine or a non-LTS Ubuntu (e.g. 23.10) and running `mise install erlang` without compile or precompiled_os configuration; CI images based on non-Ubuntu distros.
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
- precompiled erlang is not supported on musl linux
- precompiled erlang is not supported on
- unsupported architecture
- unsupported OS version
- bootstrap firewall management is only supported on Linux
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/97b1bc61ae66a44d.
Report an issue: GitHub.
Appendix: source
Thrown at src/plugins/core/erlang.rs:247
"ubuntu22" => "ubuntu-22.04".to_string(),
"ubuntu20" => "ubuntu-20.04".to_string(),
_ => os,
}
} else if let Some(os_release) = linux_os_release() {
format!("{}-{}", os_release.id, os_release.version_id)
} else {
bail!("could not determine OS release");
}
} else {
// Cross-platform Linux lock resolution cannot inspect the target
// distro, so use Bob's newest supported Ubuntu build.
"ubuntu-24.04".to_string()
};
// Keep automatic targets stable so existing optionless source locks continue to match.
// Other targets and glibc distributions can opt in with erlang.precompiled_os.
if !["ubuntu-20.04", "ubuntu-22.04", "ubuntu-24.04"].contains(&os_ver.as_str()) {
bail!("unsupported OS version: {os_ver}");
}
Ok(os_ver)
}
fn macos_asset_name(target: &PlatformTarget) -> Result<String> {
let arch = match target.arch_name() {
"x64" => "x86_64",
"arm64" => "aarch64",
other => bail!("unsupported architecture: {other}"),
};
Ok(format!("otp-{arch}-apple-darwin.tar.gz"))
}
fn windows_asset_name(version: &str, target: &PlatformTarget) -> Result<String> {
let os = match target.arch_name() {
"x64" => "win64",
"x86" => "win32",
other => bail!("unsupported architecture: {other}"),View on GitHub (pinned to 533346cc37)