zed-industries/zed · error

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

Error message

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

What it means

parse_platform maps the OS token from `uname -sm` to RemoteOs; only Darwin and Linux have prebuilt remote servers (crates/remote/src/transport.rs:35). Any other OS token - FreeBSD, OpenBSD, SunOS, native Windows - fails with this message pointing at the remote-development docs.

Source

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

pub mod docker;
#[cfg(any(test, feature = "test-support"))]
pub mod mock;
pub mod ssh;
pub mod wsl;

/// Parses the output of `uname -sm` to determine the remote platform.
/// Takes the last line to skip possible shell initialization output.
fn parse_platform(output: &str) -> Result<RemotePlatform> {
    let output = output.trim();
    let uname = output.rsplit_once('\n').map_or(output, |(_, last)| last);
    let Some((os, arch)) = uname.split_once(" ") else {
        anyhow::bail!("unknown uname: {uname:?}")
    };

    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"
        )
    };

View on GitHub (pinned to f4178619ac)

Solutions

  1. Use a Linux or macOS host for remote development
  2. On Windows remotes, install WSL and connect to it instead
  3. As a last resort, build the zed remote server from source for that OS (advanced and unsupported)
Defensive patterns

Strategy: validation

Validate before calling

os=$(ssh user@host 'uname -sm' | tail -1 | cut -d' ' -f1)
case "$os" in Darwin|Linux) echo ok ;; *) echo "no prebuilt remote server for $os" ;; esac

Prevention

When it happens

Trigger: SSHing to a host whose `uname -sm` reports an OS other than Darwin or Linux, for example a FreeBSD file server or a native Windows sshd.

Common situations: BSD file servers, Solaris/AIX legacy hosts, Windows boxes without WSL installed.

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/234dc18f99ef26fe. Report an issue: GitHub.