{"record":{"id":"83863c780fcc0b37","repo":"jdx/mise","slug":"mise-has-no-official-precompiled-artifact-for","errorCode":null,"errorMessage":"mise {} has no official precompiled artifact for {os}/{arch}; set mise_bin, remote_mise, or bootstrap_command","messagePattern":"mise (.+?) has no official precompiled artifact for (.+?)/(.+?); set mise_bin, remote_mise, or bootstrap_command","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/system/remote.rs","lineNumber":1604,"sourceCode":"            })?;\n            self.manifest = Some(ReleaseManifest::verified(&contents, &signature)?);\n        }\n        Ok(self.manifest.as_ref().expect(\"release manifest was loaded\"))\n    }\n}\n\nfn release_url(filename: &str) -> String {\n    let version = env!(\"CARGO_PKG_VERSION\");\n    format!(\"{RELEASE_BASE_URL}/v{version}/{filename}\")\n}\n\nfn release_asset_name(os: &str, arch: &str, libc: Option<LibcFlavor>) -> Result<String> {\n    let release_arch = match arch {\n        \"x86_64\" => \"x64\",\n        \"aarch64\" => \"arm64\",\n        \"armv7\" => \"armv7\",\n        _ => {\n            bail!(\n                \"mise {} has no official precompiled artifact for {os}/{arch}; set mise_bin, remote_mise, or bootstrap_command\",\n                env!(\"CARGO_PKG_VERSION\")\n            )\n        }\n    };\n    let suffix = match os {\n        \"macos\" if matches!(arch, \"x86_64\" | \"aarch64\") => {\n            if libc.is_some() {\n                bail!(\"macOS release targets cannot declare a libc family\");\n            }\n            format!(\"macos-{release_arch}\")\n        }\n        \"linux\" if matches!(arch, \"x86_64\" | \"aarch64\" | \"armv7\") => match libc {\n            Some(LibcFlavor::Glibc) => format!(\"linux-{release_arch}\"),\n            Some(LibcFlavor::Musl) => format!(\"linux-{release_arch}-musl\"),\n            None => bail!(\"Linux release targets require a detected libc family\"),\n        },\n        _ => {","sourceCodeStart":1586,"sourceCodeEnd":1622,"githubUrl":"https://github.com/jdx/mise/blob/533346cc374382b41ec5ff70536252b2e96e725c/src/system/remote.rs#L1586-L1622","documentation":"When building the official release asset filename for a target platform, release_asset_name maps known architectures (x86_64, aarch64, armv7) to mise release names; any other architecture has no official precompiled mise artifact, so the function fails and reports the os/arch pair plus guidance to supply a binary another way.","triggerScenarios":"Attempting automatic cross-platform provisioning or release asset lookup for a remote platform whose architecture is not one of x86_64/aarch64/armv7 (e.g. riscv64, s390x, ppc64le, i686) — normalized by normalize_arch and passed to release_asset_name.","commonSituations":"SSH-ing into exotic hardware (RISC-V boards, s390x mainframes, older 32-bit x86 hosts); emulated/QEMU targets; niche CI runners; alpine/musl on unsupported arch.","solutions":["Set remote_mise or mise_bin to a mise binary path on the target host (e.g. one built from source there)","Provide a bootstrap_command that builds/installs mise on the unsupported architecture","Only auto-provision on officially supported platforms (linux/macos on x64/arm64/armv7)","Skip remote auto-provisioning for that host entirely"],"exampleFix":"// before\nremote_config.bootstrap_command(...) // relies on official artifacts for riscv64\n// after\nremote_config.mise_bin(\"/opt/mise/bin/mise\") // binary built on the riscv64 host","handlingStrategy":"validation","validationCode":"case \"$(uname -m)\" in x86_64|aarch64|armv7*) echo supported;; *) echo unsupported;; esac","typeGuard":"fn is_supported_arch(arch: &str) -> bool { matches!(arch, \"x86_64\" | \"aarch64\" | \"armv7\") }","tryCatchPattern":"match res { Err(e) if e.message.contains(\"no official precompiled artifact\") => build_mise_on_target(), other => other? }","preventionTips":["Check target arch against the official support matrix before provisioning","Pre-build mise from source for exotic architectures and ship it","Keep a mise_bin inventory for non-x64/arm64 hosts"],"tags":["unsupported-platform","architecture","provisioning"],"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"}