{"record":{"id":"52711fac1a31dfd8","repo":"tinyhumansai/openhuman","slug":"whatsapp-data-list-chats-e","errorCode":null,"errorMessage":"whatsapp_data_list_chats: {e}","messagePattern":"whatsapp_data_list_chats: (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/channels/whatsapp_data/tools/list_chats.rs","lineNumber":81,"sourceCode":"            req.offset,\n        );\n        let chats: Vec<WhatsAppChat> = match BUS.native().request(methods::LIST_CHATS, req).await {\n            Ok(chats) => chats,\n            Err(e) if is_handler_absent(&e) => {\n                // Headless / CLI / docker: no desktop shell handler is\n                // registered. Degrade gracefully to an empty result.\n                log::debug!(\"[tool][whatsapp_data] list_chats handler_absent — degrading ({e})\");\n                let body = serde_json::to_string(&json!({\n                    \"provider\": \"whatsapp\",\n                    \"count\": 0,\n                    \"chats\": [],\n                    \"note\": UNAVAILABLE_NOTE,\n                }))?;\n                return Ok(ToolResult::success(body));\n            }\n            Err(e) => {\n                log::warn!(\"[tool][whatsapp_data] list_chats bridge_error error={e}\");\n                return Err(anyhow::anyhow!(\"whatsapp_data_list_chats: {e}\"));\n            }\n        };\n        log::debug!(\n            \"[tool][whatsapp_data] list_chats returning count={}\",\n            chats.len()\n        );\n        let body = serde_json::to_string(&json!({\n            \"provider\": \"whatsapp\",\n            \"count\": chats.len(),\n            \"chats\": chats,\n        }))?;\n        Ok(ToolResult::success(body))\n    }\n\n    fn is_concurrency_safe(&self, _args: &serde_json::Value) -> bool {\n        true\n    }\n}","sourceCodeStart":63,"sourceCodeEnd":99,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/channels/whatsapp_data/tools/list_chats.rs#L63-L99","documentation":"The native LIST_CHATS request to the desktop WhatsApp data handler failed with a non-handler-absent error: the handler exists but the request itself errored (scan failure, store read error, timeout). Handler-absent is deliberately excluded and degrades to an empty result, so reaching this error means a real handler-side failure.","triggerScenarios":"Thrown at src/openhuman/channels/whatsapp_data/tools/list_chats.rs:81 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Inspect the wrapped bus error for the handler-side cause","Verify WhatsApp is connected and its local data store readable","Retry after the desktop handler recovers"],"exampleFix":null,"handlingStrategy":"fallback","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"}