jdx/mise · error
{error:#}
Error message
{error:#} What it means
In src/system/remote.rs, validate_default_binary_compatibility is run against the local mise binary for the remote target platform; any error is converted with format!("{error:#}") into a local_incompatibility string. When present, the code falls back to fetching remote artifacts instead of using the local binary. The surfaced message indicates the local default binary is not compatible with the remote target platform.
Solutions
- Install/declare the correct mise binary variant for the remote target platform so validation passes.
- Rely on the automatic fallback to remote artifacts if the operation already continues gracefully.
- Check the local platform/arch (`mise doctor`) versus the remote target's and fix the mismatch in your tool/bootstrap configuration.
Example fix
// before: assuming local binary works for any remote target
let bin = local.default_binary();
// after: validate and fall back
if let Err(error) = validate_default_binary_compatibility(session, &local, &platform.os).await {
tracing::warn!("local binary incompatible: {error:#}; using remote artifacts");
} Defensive patterns
Strategy: fallback
Validate before calling
// verify local binary matches the remote target before using it
let desc = format!("{}/{}", local.platform.os, local.platform.arch);
if desc != target_platform.description() {
eprintln!("local {desc} != remote {}; using remote artifacts", target_platform.description());
} Try / catch
if let Some(incompat) = local_incompatibility {
tracing::warn!("local binary incompatible ({incompat}); falling back to remote artifacts");
fetch_remote_artifacts(session, &platform).await?;
} Prevention
- Match local mise binary architecture to the remote targets you administer.
- Install platform-specific mise builds where you drive mixed-arch fleets.
- Log the local vs remote platform description during setup to spot mismatches early.
When it happens
Trigger: Setting up a remote execution target whose OS/arch differs from the local machine and the local default binary fails platform compatibility validation (e.g. wrong architecture binary for the remote target, unsupported OS combination).
Common situations: Driving remote hosts of a different architecture (x86_64 local, arm64 remote) or a different OS family; or a locally installed mise binary that doesn't match the platform defaults expected for the target.
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
- local mise is not an ELF executable
- remote host ' ' mise binary does not exist
- a provided source resolves to a path
- a validated copy_link has a staged parent
- apk system packages are not supported for OCI architecture
AI-assisted analysis of jdx/mise@533346cc37 (2026-09-17).
Data as JSON: /api/errors/be4a4de4e89d8587.
Report an issue: GitHub.
Appendix: source
Thrown at src/system/remote.rs:995
session.status_async(&[&mise, "version"], false).await?;
return Ok(mise);
}
let binary = if let Some(binary) = &session.host.mise_bin {
binary.clone()
} else {
let platform = detect_remote_platform(session).await?;
let local_os = normalize_os(std::env::consts::OS);
let local_arch = normalize_arch(std::env::consts::ARCH);
let local = std::env::current_exe()?;
let local_incompatibility = if platform.os != local_os || platform.arch != local_arch {
Some(format!(
"local mise is {local_os}/{local_arch}, while the remote target is {}",
platform.description()
))
} else {
validate_default_binary_compatibility(session, &local, &platform.os)
.await
.err()
.map(|error| format!("{error:#}"))
};
if local_incompatibility.is_none() {
local
} else {
artifacts
.resolve(&platform, &local)
.await
.wrap_err_with(|| {
format!(
"local mise could not run on remote host '{}' ({}) because {}; official mise {} artifact fallback also failed",
session.host.name,
platform.description(),
local_incompatibility.expect("incompatibility was identified"),
env!("CARGO_PKG_VERSION"),
)
})?
}View on GitHub (pinned to 533346cc37)