zed-industries/zed · error
failed to download remote server release: {:?}
Error message
failed to download remote server release: {:?} What it means
The updater downloads the remote-server release asset to a temp file and requires HTTP success; a non-2xx status aborts with the status code embedded in the message. This is the remote-server (headless/collab) variant of the download step, distinct from the app-update download.
Source
Thrown at crates/auto_update/src/auto_update.rs:969
pub fn should_show_update_notification(&self, cx: &App) -> Task<Result<bool>> {
let kvp = KeyValueStore::global(cx);
cx.background_spawn(async move {
Ok(kvp.read_kvp(SHOULD_SHOW_UPDATE_NOTIFICATION_KEY)?.is_some())
})
}
}
async fn download_remote_server_binary(
target_path: &PathBuf,
release: ReleaseAsset,
client: Arc<HttpClientWithUrl>,
) -> Result<()> {
let temp = tempfile::Builder::new().tempfile_in(remote_servers_dir())?;
let mut temp_file = File::create(&temp).await?;
let mut response = client.get(&release.url, Default::default(), true).await?;
anyhow::ensure!(
response.status().is_success(),
"failed to download remote server release: {:?}",
response.status()
);
smol::io::copy(response.body_mut(), &mut temp_file).await?;
smol::fs::rename(&temp, &target_path).await?;
Ok(())
}
async fn cleanup_remote_server_cache(
platform_dir: &Path,
keep_path: &Path,
limit: usize,
) -> Result<()> {
if limit == 0 {
return Ok(());
}View on GitHub (pinned to bc538def45)
Solutions
- Retry - a fresh check re-fetches release metadata and a current asset URL.
- If it repeats, verify the asset URL opens (curl -I) from the same machine.
- Check disk space and permissions in the remote servers cache directory.
- Rule out proxies/antivirus intercepting large downloads.
Defensive patterns
Strategy: retry
Validate before calling
if let Ok(head) = client.head(&release.url).await {
if !head.status().is_success() {
// re-fetch release metadata for a fresh asset URL before downloading
}
} Try / catch
on "failed to download remote server release", re-run the release lookup (fresh URL) and retry the download once before reporting.
Prevention
- Re-resolve asset URLs immediately before use
- Avoid caching release metadata across long sessions
- Exclude the download host from proxy interception
When it happens
Trigger: client.get(&release.url) returns a non-success status while fetching the remote server tarball - typically an expired or rotated asset URL, CDN 403, rate limiting, or a proxy blocking the large file.
Common situations: A release asset URL going stale between metadata fetch and download; nightly assets rotated mid-session; corporate proxies rejecting binary downloads; insufficient disk space in the remote servers cache dir.
Related errors
- failed to download update: {:?}
- failed to fetch release: {:?}
- Slack webhook returned {response.status_code}: {response.tex
- GraphQL failed after {retries} retries: {last_err}
- Sentry API returned HTTP {error.code} for {path}: {detail}
AI-assisted analysis of zed-industries/zed@bc538def45 (2026-08-16).
Data as JSON: /api/errors/b7e7275a614c85af.
Report an issue: GitHub.