zed-industries/zed · error
login command should be set
Error message
login command should be set
What it means
Guard in conversation_view.rs expecting the agent's login command to be configured when handling the node-runtime resolution path. Fires if the ACP agent server descriptor lacks a login command, which the surrounding code assumes is present by this point.
Source
Thrown at crates/agent_ui/src/conversation_view.rs:2135
})
})
.detach();
}
fn spawn_external_agent_login(
login: task::SpawnInTerminal,
workspace: Entity<Workspace>,
project: Entity<Project>,
method: acp::AuthMethodId,
previous_attempt: bool,
window: &mut Window,
cx: &mut App,
) -> Task<Result<()>> {
let Some(terminal_panel) = workspace.read(cx).panel::<TerminalPanel>(cx) else {
return Task::ready(Err(anyhow!("Terminal panel is unavailable")));
};
window.spawn(cx, async move |cx| {
let mut task = login.clone();
if let Some(cmd) = &task.command {
// Have "node" command use Zed's managed Node runtime by default
if cmd == "node" {
let resolved_node_runtime = project.update(cx, |project, cx| {
let agent_server_store = project.agent_server_store().clone();
agent_server_store.update(cx, |store, cx| {
store.node_runtime().map(|node_runtime| {
cx.background_spawn(async move { node_runtime.binary_path().await })
})
})
});
if let Some(resolve_task) = resolved_node_runtime {
if let Ok(node_path) = resolve_task.await {
task.command = Some(node_path.to_string_lossy().to_string());
}
}View on GitHub (pinned to 9d272b0363)
Solutions
- Ensure the agent server extension defines a login command
- Check that agent metadata was fully loaded before rendering the conversation view
- Reinstall or update the agent server extension
Defensive patterns
Strategy: type-guard
When it happens
Trigger: Thrown at crates/agent_ui/src/conversation_view.rs:2128 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/8ff57c538f8ba793.
Report an issue: GitHub.