zed-industries/zed · error
Neither curl nor wget is available
Error message
Neither curl nor wget is available
What it means
To provision the remote server on an SSH host, Zed downloads the release via curl executed over the ssh socket; if that fails and `which wget` (also via the socket) fails, it bails — the remote host has neither curl nor wget, so there is no way to fetch the server binary.
Source
Thrown at crates/remote/src/transport/ssh.rs:1054
url,
"-O",
&tmp_path.display(self.path_style()),
],
true,
)
.await
{
Ok(_) => {}
Err(e) => {
if self
.socket
.run_command(self.ssh_shell_kind, "which", &["wget"], true)
.await
.is_ok()
{
return Err(e);
} else {
anyhow::bail!("Neither curl nor wget is available");
}
}
}
}
}
Ok(())
}
async fn upload_local_server_binary(
&self,
src_path: &Path,
tmp_path: &RelPath,
delegate: &Arc<dyn RemoteClientDelegate>,
cx: &mut AsyncApp,
) -> Result<()> {
if let Some(parent) = tmp_path.parent() {
let res = selfView on GitHub (pinned to f4178619ac)
Solutions
- Install a downloader on the remote: apt-get install -y curl (or wget, apk/yum/dnf equivalents)
- With a dev-channel Zed, set ZED_BUILD_REMOTE_SERVER so the server is SFTP/SCP-uploaded from the local machine and nothing is downloaded remotely
- Pre-install the zed-remote-server binary on the host at the expected path
- Check PATH in the remote login shell (`which curl` manually) — tools present but not on PATH behave the same
Example fix
# on the remote host # before which curl wget # nothing # after (Debian/Ubuntu) sudo apt-get update && sudo apt-get install -y curl # retry the Zed SSH connection
Defensive patterns
Strategy: fallback
Validate before calling
async fn remote_has_download_tool(socket: &SshSocket, shell: ShellKind) -> bool {
socket.run_command(shell, "which", &["curl"], true).await.is_ok()
|| socket.run_command(shell, "which", &["wget"], true).await.is_ok()
} Try / catch
if let Err(e) = download_on_remote().await {
if e.to_string().contains("Neither curl nor wget") {
// fallback: upload the local server build via ZED_BUILD_REMOTE_SERVER instead of downloading
}
return Err(e);
} Prevention
- Install curl or wget on remotes used as dev boxes
- Verify `which curl` succeeds in the exact login shell Zed uses
- Keep a local remote-server build ready to upload when remotes cannot download
When it happens
Trigger: The curl download over the ssh shell errors, the fallback wget attempt errors, and both `which` probes over run_command confirm neither binary exists on the remote host.
Common situations: Minimal containers, embedded/NAS systems, or hardened servers without curl/wget; remotes where the login shell's PATH omits /usr/bin; stripped VM images used as dev boxes.
Related errors
- Neither curl nor wget is available
- build ids may only contain lowercase letters, numbers, '.',
- registry dataset requires a name
- cannot open repository on disconnected remote machine
- unknown uname: {uname:?}
AI-assisted analysis of zed-industries/zed@f4178619ac (2026-08-20).
Data as JSON: /api/errors/1ff38b277a66d333.
Report an issue: GitHub.