zed-industries/zed · error
no language server download dir defined
Error message
no language server download dir defined
What it means
Sentinel error in get_language_server_command: downloading is allowed, but the LspAdapter's `language_server_download_dir` returned None, so there is no directory configured in which the downloaded language server binary could be stored. Without a container dir the download flow cannot proceed, so the request for the server binary fails.
Source
Thrown at crates/language/src/language.rs:849
binary.path,
binary.arguments
);
return (Ok(binary), None);
}
if let Some((pre_release, cached_binary)) = cached_binary_deref
&& *pre_release == binary_options.pre_release
{
return (Ok(cached_binary.clone()), None);
}
if !binary_options.allow_binary_download {
return (
Err(anyhow::anyhow!("downloading language servers disabled")),
None,
);
}
let Some(container_dir) = delegate.language_server_download_dir(&self.name()).await
else {
return (
Err(anyhow::anyhow!("no language server download dir defined")),
None,
);
};
let last_downloaded_binary = self
.cached_server_binary(container_dir.to_path_buf(), delegate.as_ref())
.await
.context(
"did not find existing language server binary, falling back to downloading",
);
let download_binary = async move {
let mut binary = self
.try_fetch_server_binary(
&delegate,View on GitHub (pinned to 9d272b0363)
Solutions
- Implement or correct language_server_download_dir on the language's adapter so it returns a container directory
- Check language server download directory settings (e.g. a configured custom location is unset or invalid)
- Ensure the adapter for this language is the intended one and fully configured
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at crates/language/src/language.rs:846 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of zed-industries/zed@9d272b0363 (2026-08-20).
Data as JSON: /api/errors/6730a2a4d01e2b4f.
Report an issue: GitHub.