nikivdev/code · error

Unsupported Linux architecture

Error message

Unsupported Linux architecture

What it means

Raised by `detect_release_target` when running on Linux but the compiled architecture is neither x86_64 nor aarch64; the updater cannot map the platform to a published release artifact (x86_64-unknown-linux-gnu / aarch64-unknown-linux-gnu).

Source

Thrown at src/upgrade.rs:155

/// Detect the current platform (os, arch).
fn detect_release_target() -> Result<&'static str> {
    if cfg!(target_os = "macos") {
        if cfg!(target_arch = "x86_64") {
            return Ok("x86_64-apple-darwin");
        }
        if cfg!(target_arch = "aarch64") {
            return Ok("aarch64-apple-darwin");
        }
        bail!("Unsupported macOS architecture");
    }
    if cfg!(target_os = "linux") {
        if cfg!(target_arch = "x86_64") {
            return Ok("x86_64-unknown-linux-gnu");
        }
        if cfg!(target_arch = "aarch64") {
            return Ok("aarch64-unknown-linux-gnu");
        }
        bail!("Unsupported Linux architecture");
    }

    bail!("Unsupported operating system for self-upgrade (only macOS/Linux supported)");
}

fn detect_legacy_platform() -> Result<(&'static str, &'static str)> {
    let os = if cfg!(target_os = "macos") {
        "darwin"
    } else if cfg!(target_os = "linux") {
        "linux"
    } else {
        bail!("Unsupported operating system for self-upgrade (only macOS/Linux supported)");
    };

    let arch = if cfg!(target_arch = "aarch64") {
        "arm64"
    } else if cfg!(target_arch = "x86_64") {
        "amd64"

View on GitHub (pinned to a747e741ae)

Solutions

  1. Install a build made for x86_64-unknown-linux-gnu or aarch64-unknown-linux-gnu.
  2. On 64-bit capable hardware (e.g. newer Raspberry Pi), switch to a 64-bit OS so target_arch is aarch64.
  3. Perform manual updates (download releases yourself) instead of self-upgrade.
Defensive patterns

Strategy: fallback

Validate before calling

fn is_supported_linux_arch() -> bool {
    matches!(std::env::consts::ARCH, "x86_64" | "aarch64")
}
if !is_supported_linux_arch() {
    eprintln!("self-upgrade unsupported on this Linux arch; update manually");
    return;
}

Try / catch

match detect_release_target() {
    Ok(target) => { /* download target asset */ }
    Err(e) if e.to_string().contains("Unsupported Linux") => {
        eprintln!("build/install x86_64 or aarch64 Linux binary instead");
    }
    Err(e) => return Err(e),
}

Prevention

When it happens

Trigger: Self-upgrade (`run`) on Linux with a build targeting arm 32-bit, riscv, powerpc, musl/non-glibc variant arches, etc.

Common situations: Running on Raspberry Pi (32-bit arm), embedded boards, or niche architectures; alpine/musl builds expecting a different artifact triple.

Related errors


AI-assisted analysis of nikivdev/code@a747e741ae (2026-09-01). Data as JSON: /api/errors/06551b85b43114e8. Report an issue: GitHub.