Hmbown/CodeWhale · error

MCP server '{}': connection poisoned by an earlier panic

Error message

MCP server '{}': connection poisoned by an earlier panic

What it means

Error "MCP server '{}': connection poisoned by an earlier panic" thrown in Hmbown/CodeWhale.

Source

Thrown at crates/mcp/src/stdio_client.rs:200

        Ok(Self {
            server_name,
            capabilities,
            connection: Mutex::new(connection),
            request_timeout,
        })
    }

    fn supports_tools(&self) -> bool {
        self.capabilities.is_none_or(|caps| caps.tools)
    }

    fn supports_resources(&self) -> bool {
        self.capabilities.is_none_or(|caps| caps.resources)
    }

    fn request(&self, method: &str, params: Value) -> Result<Value> {
        let mut connection = self.connection.lock().map_err(|_| {
            anyhow!(
                "MCP server '{}': connection poisoned by an earlier panic",
                self.server_name
            )
        })?;
        connection.request(&self.server_name, method, params, self.request_timeout)
    }

    /// Drive a paginated `*/list` method to exhaustion, collecting `field`.
    fn list_paginated(&self, method: &str, field: &str) -> Result<Vec<Value>> {
        let mut items = Vec::new();
        let mut cursor: Option<String> = None;
        for _ in 0..MAX_LIST_PAGES {
            let params = match &cursor {
                Some(cursor) => json!({ "cursor": cursor }),
                None => json!({}),
            };
            let page = self.request(method, params)?;
            if let Some(values) = page.get(field).and_then(Value::as_array) {

View on GitHub (pinned to 8880682c63)

When it happens

Trigger: Thrown at crates/mcp/src/stdio_client.rs:200 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of Hmbown/CodeWhale@8880682c63 (2026-08-16). Data as JSON: /api/errors/7d9b4a5895f958c5. Report an issue: GitHub.