zed-industries/zed · error

Listing available agents is not supported in this environmen

Error message

Listing available agents is not supported in this environment

What it means

Default implementation of ThreadEnvironment::list_available_agents, the companion to create_sibling_thread. Without an environment that supports sibling threads there is no agent/model catalog to list, so the default returns this error.

Source

Thrown at crates/agent/src/thread.rs:797

    /// Creates an independent sibling thread visible in the agent sidebar.
    /// Unlike subagents, sibling threads are first-class threads that persist
    /// and run in parallel without reporting results back to the parent.
    fn create_sibling_thread(
        &self,
        request: SiblingThreadRequest,
        cx: &mut AsyncApp,
    ) -> Task<Result<SiblingThreadInfo>> {
        let _ = request;
        let _ = cx;
        Task::ready(Err(anyhow::anyhow!(
            "Creating sibling threads is not supported in this environment"
        )))
    }

    /// Lists the agents and models available for use with `create_sibling_thread`.
    fn list_available_agents(&self, cx: &mut App) -> Result<AvailableAgents> {
        let _ = cx;
        Err(anyhow::anyhow!(
            "Listing available agents is not supported in this environment"
        ))
    }
}

/// A request to create a new sibling thread.
#[derive(Debug, Clone)]
pub struct SiblingThreadRequest {
    /// A short title for the new thread, shown in the sidebar.
    pub title: SharedString,
    /// The initial prompt to send to the new thread.
    pub prompt: String,
    /// Optional agent ID to use. Defaults to the native Zed agent.
    pub agent_id: Option<String>,
    /// Optional model override, as `provider/model-id`.
    /// Defaults to the user's configured default model for the agent.
    pub model: Option<String>,
    /// Whether to create the thread in a new git worktree workspace.

View on GitHub (pinned to bc538def45)

Solutions

  1. Use NativeThreadEnvironment with the agent panel initialized when you need the catalog.
  2. Override list_available_agents in your ThreadEnvironment.
  3. Treat the error as 'feature unavailable' and offer subagent delegation instead.
Defensive patterns

Strategy: fallback

Try / catch

match environment.list_available_agents(cx) {
    Ok(agents) => agents,
    Err(e) if e.to_string().contains("Listing available agents is not supported") => {
        AvailableAgents::default() // empty catalog; disable sibling-thread pickers
    }
    Err(e) => return Err(e),
}

Prevention

When it happens

Trigger: Calling list_available_agents on a ThreadEnvironment that did not override it — embedded or test environments without an agent panel host.

Common situations: Delegation pickers probing capabilities in non-native hosts; tests exercising the trait surface.

Related errors


AI-assisted analysis of zed-industries/zed@bc538def45 (2026-08-16). Data as JSON: /api/errors/b84c06164f5bf58e. Report an issue: GitHub.