{"record":{"id":"573de77bec0e7bb1","repo":"tinyhumansai/openhuman","slug":"stdio-mcp-response-missing-result-payload","errorCode":null,"errorMessage":"stdio MCP response missing `result`: {payload}","messagePattern":"stdio MCP response missing `result`: (.+?)","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"src/openhuman/mcp/config_servers/stdio.rs","lineNumber":249,"sourceCode":"            }\n            if !trimmed.starts_with('{') && !trimmed.starts_with('[') {\n                tracing::debug!(\n                    target: \"[mcp_client::stdio]\",\n                    command = %self.command,\n                    line = %trimmed,\n                    \"ignoring non-JSON stdout line from stdio MCP server\"\n                );\n                continue;\n            }\n            let payload: Value = serde_json::from_str(trimmed)\n                .with_context(|| format!(\"parsing stdio MCP response: {trimmed}\"))?;\n            if let Some(err) = payload.get(\"error\") {\n                anyhow::bail!(\"MCP stdio error: {err}\");\n            }\n            return payload\n                .get(\"result\")\n                .cloned()\n                .ok_or_else(|| anyhow::anyhow!(\"stdio MCP response missing `result`: {payload}\"));\n        }\n    }\n\n    async fn send_notification_on_session(\n        &self,\n        session: &mut StdioSession,\n        method: &str,\n        params: Value,\n    ) -> anyhow::Result<()> {\n        let line = serde_json::to_string(&json!({\n            \"jsonrpc\": \"2.0\",\n            \"method\": method,\n            \"params\": params,\n        }))?;\n        session.stdin.write_all(line.as_bytes()).await?;\n        session.stdin.write_all(b\"\\n\").await?;\n        session.stdin.flush().await?;\n        Ok(())","sourceCodeStart":231,"sourceCodeEnd":267,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/mcp/config_servers/stdio.rs#L231-L267","documentation":"A JSON-RPC frame arrived from the stdio MCP server with neither a \"result\" nor (checked just before) a usable payload shape — the message is valid JSON but not a response the client can correlate. Typically a server bug or a notification sent where a response was expected.","triggerScenarios":"Thrown at src/openhuman/mcp/config_servers/stdio.rs:249 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Inspect the logged payload to identify which request the malformed reply answers","Upgrade or report the MCP server — responses must carry a \"result\" or \"error\" member","Retry the request; a one-off garbled frame may be transient"],"exampleFix":null,"handlingStrategy":"retry","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"749120085864ce16e0f273c7b86fac7740b39c5b","analyzedAt":"2026-08-17T21:21:45.363Z","contentChangedAt":null,"schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}