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

  1. Implement or correct language_server_download_dir on the language's adapter so it returns a container directory
  2. Check language server download directory settings (e.g. a configured custom location is unset or invalid)
  3. 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.