jdx/mise · error
mise has no official precompiled artifact for / ; set…
Error message
mise {} has no official precompiled artifact for {os}/{arch}; set mise_bin, remote_mise, or bootstrap_command What it means
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.
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
Example fix
// before
remote_config.bootstrap_command(...) // relies on official artifacts for riscv64
// after
remote_config.mise_bin("/opt/mise/bin/mise") // binary built on the riscv64 host Defensive patterns
Strategy: validation
Validate before calling
case "$(uname -m)" in x86_64|aarch64|armv7*) echo supported;; *) echo unsupported;; esac
Type guard
fn is_supported_arch(arch: &str) -> bool { matches!(arch, "x86_64" | "aarch64" | "armv7") } Try / catch
match res { Err(e) if e.message.contains("no official precompiled artifact") => build_mise_on_target(), other => other? } Prevention
- 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
When it happens
Trigger: 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.
Common situations: 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.
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
- apk system packages are not supported for OCI architecture
- apt system packages are not supported for OCI architecture
- automatic cross-platform provisioning is unavailable from a…
- bootstrap resource dependency cycle
- brew-cask prune is not supported on windows
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/83863c780fcc0b37.
Report an issue: GitHub.
Appendix: source
Thrown at src/system/remote.rs:1604
})?;
self.manifest = Some(ReleaseManifest::verified(&contents, &signature)?);
}
Ok(self.manifest.as_ref().expect("release manifest was loaded"))
}
}
fn release_url(filename: &str) -> String {
let version = env!("CARGO_PKG_VERSION");
format!("{RELEASE_BASE_URL}/v{version}/{filename}")
}
fn release_asset_name(os: &str, arch: &str, libc: Option<LibcFlavor>) -> Result<String> {
let release_arch = match arch {
"x86_64" => "x64",
"aarch64" => "arm64",
"armv7" => "armv7",
_ => {
bail!(
"mise {} has no official precompiled artifact for {os}/{arch}; set mise_bin, remote_mise, or bootstrap_command",
env!("CARGO_PKG_VERSION")
)
}
};
let suffix = match os {
"macos" if matches!(arch, "x86_64" | "aarch64") => {
if libc.is_some() {
bail!("macOS release targets cannot declare a libc family");
}
format!("macos-{release_arch}")
}
"linux" if matches!(arch, "x86_64" | "aarch64" | "armv7") => match libc {
Some(LibcFlavor::Glibc) => format!("linux-{release_arch}"),
Some(LibcFlavor::Musl) => format!("linux-{release_arch}-musl"),
None => bail!("Linux release targets require a detected libc family"),
},
_ => {View on GitHub (pinned to 533346cc37)