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

  1. Install/declare the correct mise binary variant for the remote target platform so validation passes.
  2. Rely on the automatic fallback to remote artifacts if the operation already continues gracefully.
  3. 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

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


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)