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
- Verify the project's mode initialization; a project should always be local or connected to an upstream client
- Check that upstream_client() did not fail silently due to a dropped connection before this call
- 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.