zed-industries/zed · error

no upstream client and not local

Error message

no upstream client and not local

What it means

Sentinel guard in execute_command's final else branch: the project has neither an upstream (collab/remote) client to forward the request to nor is running in local mode. This is an impossible/unsupported project state for executing an LSP command — there is no peer to send the request to.

Source

Thrown at crates/project/src/lsp_store.rs:6684

            }
            let request_timeout = ProjectSettings::get_global(cx)
                .global_lsp_settings
                .get_request_timeout();
            cx.background_spawn(async move {
                server
                    .request::<lsp::request::ExecuteCommand>(
                        lsp::ExecuteCommandParams {
                            command,
                            arguments,
                            ..lsp::ExecuteCommandParams::default()
                        },
                        request_timeout,
                    )
                    .await
                    .into_response()
            })
        } else {
            Task::ready(Err(anyhow!("no upstream client and not local")))
        }
    }

    pub fn resolve_code_action(
        &self,
        buffer: &Entity<Buffer>,
        mut action: CodeAction,
        cx: &mut Context<Self>,
    ) -> Task<Result<CodeAction>> {
        if action.resolved {
            return Task::ready(Ok(action));
        }
        if !self.can_resolve_lsp_action_for_buffer(buffer, &action, cx) {
            action.resolved = true;
            return Task::ready(Ok(action));
        }
        if let Some((upstream_client, project_id)) = self.upstream_client() {
            let request = proto::ResolveCodeAction {

View on GitHub (pinned to 9d272b0363)

Solutions

  1. Verify the project's mode initialization; a project should always be local or connected to an upstream client
  2. Check that upstream_client() did not fail silently due to a dropped connection before this call
  3. Surface the error to the caller so the LSP command invocation is reported as unavailable instead of hanging
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at crates/project/src/lsp_store.rs:6684 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of zed-industries/zed@9d272b0363 (2026-09-12). Data as JSON: /api/errors/99925854c9ada816. Report an issue: GitHub.