zed-industries/zed · error

Prebuilt remote servers are not yet available for {arch:?}.

Error message

Prebuilt remote servers are not yet available for {arch:?}. See https://zed.dev/docs/remote-development

What it means

The arch token from `uname -sm` is accepted only for 64-bit ARM (armv8/armv9/arm64/aarch64) and the x86 family (x86_64); 32-bit ARM (armv5/6/7) is deliberately excluded and exotic ISAs match neither branch (crates/remote/src/transport.rs:50). Anything else - riscv64, loongarch64, i686, armv7l - fails because no prebuilt remote server exists.

Source

Thrown at crates/remote/src/transport.rs:50

    let os = match os {
        "Darwin" => RemoteOs::MacOs,
        "Linux" => RemoteOs::Linux,
        _ => anyhow::bail!(
            "Prebuilt remote servers are not yet available for {os:?}. See https://zed.dev/docs/remote-development"
        ),
    };

    // exclude armv5,6,7 as they are 32-bit.
    let arch = if arch.starts_with("armv8")
        || arch.starts_with("armv9")
        || arch.starts_with("arm64")
        || arch.starts_with("aarch64")
    {
        RemoteArch::Aarch64
    } else if arch.starts_with("x86") {
        RemoteArch::X86_64
    } else {
        anyhow::bail!(
            "Prebuilt remote servers are not yet available for {arch:?}. See https://zed.dev/docs/remote-development"
        )
    };

    Ok(RemotePlatform { os, arch })
}

/// The command (program + args) used to read a remote host's OS version, given
/// its detected OS.
///
/// The output is parsed by [`parse_os_version`].
pub(crate) fn os_version_command(os: RemoteOs) -> (&'static str, &'static [&'static str]) {
    match os {
        // Matches the `/etc/os-release` parsing in `client::telemetry::os_version`.
        RemoteOs::Linux => ("cat", &["/etc/os-release"]),
        RemoteOs::MacOs => ("sw_vers", &["-productVersion"]),
        // Prints e.g. "Microsoft Windows [Version 10.0.19045.5011]".
        RemoteOs::Windows => ("cmd.exe", &["/c", "ver"]),

View on GitHub (pinned to f4178619ac)

Solutions

  1. Use a 64-bit ARM or x86_64 host - on a Raspberry Pi, boot a 64-bit OS
  2. Cross-compile the remote server from source for the exotic architecture (advanced)
  3. Track upstream support for the architecture
Defensive patterns

Strategy: validation

Validate before calling

arch=$(ssh user@host 'uname -sm' | tail -1 | cut -d' ' -f2)
case "$arch" in
    aarch64|arm64|armv8*|armv9*|x86_64) echo ok ;;
    *) echo "no prebuilt remote server for $arch (use a 64-bit ARM or x86_64 host)" ;;
esac

Prevention

When it happens

Trigger: A remote host reporting an architecture other than aarch64 or x86_64, e.g. `uname -sm` returning "Linux armv7l", "Linux riscv64", or "Linux i686".

Common situations: Older Raspberry Pi models running a 32-bit OS; RISC-V or Loongson boards; 32-bit i686 installations.

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 zed-industries/zed@f4178619ac (2026-08-20). Data as JSON: /api/errors/d484f04f8afa4dc6. Report an issue: GitHub.