{"record":{"id":"7d9b4a5895f958c5","repo":"Hmbown/CodeWhale","slug":"mcp-server-connection-poisoned-by-an-earlier","errorCode":null,"errorMessage":"MCP server '{}': connection poisoned by an earlier panic","messagePattern":"MCP server '(.+?)': connection poisoned by an earlier panic","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/mcp/src/stdio_client.rs","lineNumber":200,"sourceCode":"        Ok(Self {\n            server_name,\n            capabilities,\n            connection: Mutex::new(connection),\n            request_timeout,\n        })\n    }\n\n    fn supports_tools(&self) -> bool {\n        self.capabilities.is_none_or(|caps| caps.tools)\n    }\n\n    fn supports_resources(&self) -> bool {\n        self.capabilities.is_none_or(|caps| caps.resources)\n    }\n\n    fn request(&self, method: &str, params: Value) -> Result<Value> {\n        let mut connection = self.connection.lock().map_err(|_| {\n            anyhow!(\n                \"MCP server '{}': connection poisoned by an earlier panic\",\n                self.server_name\n            )\n        })?;\n        connection.request(&self.server_name, method, params, self.request_timeout)\n    }\n\n    /// Drive a paginated `*/list` method to exhaustion, collecting `field`.\n    fn list_paginated(&self, method: &str, field: &str) -> Result<Vec<Value>> {\n        let mut items = Vec::new();\n        let mut cursor: Option<String> = None;\n        for _ in 0..MAX_LIST_PAGES {\n            let params = match &cursor {\n                Some(cursor) => json!({ \"cursor\": cursor }),\n                None => json!({}),\n            };\n            let page = self.request(method, params)?;\n            if let Some(values) = page.get(field).and_then(Value::as_array) {","sourceCodeStart":182,"sourceCodeEnd":218,"githubUrl":"https://github.com/Hmbown/CodeWhale/blob/8880682c63083a91624de936797efa3ce9e498fd/crates/mcp/src/stdio_client.rs#L182-L218","documentation":"Error \"MCP server '{}': connection poisoned by an earlier panic\" thrown in Hmbown/CodeWhale.","triggerScenarios":"Thrown at crates/mcp/src/stdio_client.rs:200 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"8880682c63083a91624de936797efa3ce9e498fd","analyzedAt":"2026-08-16T11:31:27.956Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}