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
- Use a 64-bit ARM or x86_64 host - on a Raspberry Pi, boot a 64-bit OS
- Cross-compile the remote server from source for the exotic architecture (advanced)
- 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
- Use 64-bit OSes on ARM boards (32-bit armv7 is deliberately unsupported)
- Standardize remote hosts on x86_64 or aarch64
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
- Prebuilt remote servers are not yet available for {os:?}. Se
- build ids may only contain lowercase letters, numbers, '.',
- registry dataset requires a name
- cannot open repository on disconnected remote machine
- unsupported Copilot language server architecture: {architect
AI-assisted analysis of zed-industries/zed@f4178619ac (2026-08-20).
Data as JSON: /api/errors/d484f04f8afa4dc6.
Report an issue: GitHub.