{"record":{"id":"f85fc3515447bf37","repo":"jdx/mise","slug":"unsupported-architecture-other","errorCode":null,"errorMessage":"unsupported architecture: {other}","messagePattern":"unsupported architecture: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/plugins/core/erlang.rs","lineNumber":173,"sourceCode":"    fn source_archive_url(version: &str) -> String {\n        format!(\n            \"https://github.com/erlang/otp/archive/{}.tar.gz\",\n            Self::release_tag(version)\n        )\n    }\n\n    fn source_cache_name(url: &str) -> String {\n        format!(\"otp-source-{}.tar.gz\", crate::hash::hash_sha256_to_str(url))\n    }\n\n    fn linux_precompiled_base_url(target: &PlatformTarget) -> Result<String> {\n        if target.libc() == Some(\"musl\") {\n            bail!(\"precompiled erlang is not supported on musl linux\");\n        }\n        let arch = match target.arch_name() {\n            \"x64\" => \"amd64\",\n            \"arm64\" => \"arm64\",\n            other => bail!(\"unsupported architecture: {other}\"),\n        };\n        let os_ver = Self::linux_precompiled_os_version()?;\n        Ok(format!(\"https://builds.hex.pm/builds/otp/{arch}/{os_ver}\"))\n    }\n\n    async fn linux_precompiled_lock_info(\n        version: &str,\n        target: &PlatformTarget,\n    ) -> Result<PlatformInfo> {\n        let base_url = Self::linux_precompiled_base_url(target)?;\n        let release_tag = Self::release_tag(version);\n        let builds = HTTP_FETCH\n            .get_text_cached(format!(\"{base_url}/builds.txt\"))\n            .await?;\n        let checksum = parse_hex_build_checksum(&builds, &release_tag)?;\n        Ok(PlatformInfo {\n            url: Some(format!(\"{base_url}/{release_tag}.tar.gz\")),\n            checksum: Some(checksum),","sourceCodeStart":155,"sourceCodeEnd":191,"githubUrl":"https://github.com/jdx/mise/blob/533346cc374382b41ec5ff70536252b2e96e725c/src/plugins/core/erlang.rs#L155-L191","documentation":"linux_precompiled_base_url maps the host architecture to the naming used by Erlang's precompiled build artifacts; the target arch matched none of the known values (x64→amd64 etc.). Without a mapping there is no download URL to build, so the function bails with the unsupported arch name.","triggerScenarios":"Installing precompiled Erlang on architectures like x86 (32-bit), riscv64, ppc64le, s390x, or armv7 Linux.","commonSituations":"Raspberry Pi 32-bit OS; niche server architectures (s390x mainframes, ppc64le); riscv64 dev boards running mise.","solutions":["Compile Erlang from source on the unsupported architecture (enable erlang_compile, install build dependencies)","Run on x86_64 or arm64 hardware/emulation (e.g. qemu-user or arm64 runners)","Check that a typo in MISE_ARCH / target triple isn't causing a bogus arch name"],"exampleFix":"// before\n# armv7 device\nmise install erlang@26.2\n// after\nmise settings set erlang_compile true\nmise install erlang@26.2  # compiles from source","handlingStrategy":"validation","validationCode":"case \"$(uname -m)\" in x86_64|aarch64|arm64) echo \"precompiled OK\";; *) echo \"unsupported arch: compile from source\";; esac","typeGuard":null,"tryCatchPattern":"null","preventionTips":["Check builds.hex.pm build matrix before choosing precompiled for exotic arches","Set erlang_compile=true on non-amd64/arm64 machines by default","Use arm64 or x86_64 runners in CI"],"tags":["erlang","architecture","platform","precompiled"],"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"}