{"record":{"id":"97b1bc61ae66a44d","repo":"jdx/mise","slug":"unsupported-os-version-os-ver","errorCode":null,"errorMessage":"unsupported OS version: {os_ver}","messagePattern":"unsupported OS version: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/plugins/core/erlang.rs","lineNumber":247,"sourceCode":"                    \"ubuntu22\" => \"ubuntu-22.04\".to_string(),\n                    \"ubuntu20\" => \"ubuntu-20.04\".to_string(),\n                    _ => os,\n                }\n            } else if let Some(os_release) = linux_os_release() {\n                format!(\"{}-{}\", os_release.id, os_release.version_id)\n            } else {\n                bail!(\"could not determine OS release\");\n            }\n        } else {\n            // Cross-platform Linux lock resolution cannot inspect the target\n            // distro, so use Bob's newest supported Ubuntu build.\n            \"ubuntu-24.04\".to_string()\n        };\n\n        // Keep automatic targets stable so existing optionless source locks continue to match.\n        // Other targets and glibc distributions can opt in with erlang.precompiled_os.\n        if ![\"ubuntu-20.04\", \"ubuntu-22.04\", \"ubuntu-24.04\"].contains(&os_ver.as_str()) {\n            bail!(\"unsupported OS version: {os_ver}\");\n        }\n        Ok(os_ver)\n    }\n\n    fn macos_asset_name(target: &PlatformTarget) -> Result<String> {\n        let arch = match target.arch_name() {\n            \"x64\" => \"x86_64\",\n            \"arm64\" => \"aarch64\",\n            other => bail!(\"unsupported architecture: {other}\"),\n        };\n        Ok(format!(\"otp-{arch}-apple-darwin.tar.gz\"))\n    }\n\n    fn windows_asset_name(version: &str, target: &PlatformTarget) -> Result<String> {\n        let os = match target.arch_name() {\n            \"x64\" => \"win64\",\n            \"x86\" => \"win32\",\n            other => bail!(\"unsupported architecture: {other}\"),","sourceCodeStart":229,"sourceCodeEnd":265,"githubUrl":"https://github.com/jdx/mise/blob/533346cc374382b41ec5ff70536252b2e96e725c/src/plugins/core/erlang.rs#L229-L265","documentation":"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.","triggerScenarios":"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.","commonSituations":"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.","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"],"exampleFix":"// before (mise.toml)\n[erlang]\n// no precompiled target configured on Debian\n\n// after\n[settings.erlang]\nprecompiled_os = \"ubuntu-24.04\"","handlingStrategy":"validation","validationCode":"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","typeGuard":null,"tryCatchPattern":null,"preventionTips":["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"],"tags":["erlang","precompiled","linux","platform"],"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"}