{"record":{"id":"22a4121f8ca24c12","repo":"tinyhumansai/openhuman","slug":"invalid-arguments-for-whatsapp-data-list-messages","errorCode":null,"errorMessage":"invalid arguments for whatsapp_data_list_messages: {e}","messagePattern":"invalid arguments for whatsapp_data_list_messages: (.+?)","errorType":"validation","errorClass":null,"httpStatus":null,"severity":"error","filePath":"src/openhuman/channels/whatsapp_data/tools/list_messages.rs","lineNumber":72,"sourceCode":"                    \"type\": \"integer\",\n                    \"minimum\": 1,\n                    \"description\": \"Maximum messages to return (default 100).\"\n                },\n                \"offset\": {\n                    \"type\": \"integer\",\n                    \"minimum\": 0,\n                    \"description\": \"Pagination offset (default 0).\"\n                }\n            },\n            \"required\": [\"chat_id\"]\n        })\n    }\n\n    async fn execute(&self, args: serde_json::Value) -> anyhow::Result<ToolResult> {\n        log::debug!(\"[tool][whatsapp_data] list_messages invoked\");\n        let req: ListMessagesRequest = serde_json::from_value(args).map_err(|e| {\n            log::debug!(\"[tool][whatsapp_data] list_messages invalid_args error={e}\");\n            anyhow::anyhow!(\"invalid arguments for whatsapp_data_list_messages: {e}\")\n        })?;\n        log::debug!(\n            \"[tool][whatsapp_data] list_messages args has_account={} has_chat=true limit={:?} offset={:?} has_since={} has_until={}\",\n            req.account_id.is_some(),\n            req.limit,\n            req.offset,\n            req.since_ts.is_some(),\n            req.until_ts.is_some(),\n        );\n        let messages: Vec<WhatsAppMessage> =\n            match BUS.native().request(methods::LIST_MESSAGES, req).await {\n                Ok(messages) => messages,\n                Err(e) if is_handler_absent(&e) => {\n                    log::debug!(\n                        \"[tool][whatsapp_data] list_messages handler_absent — degrading ({e})\"\n                    );\n                    let body = serde_json::to_string(&json!({\n                        \"provider\": \"whatsapp\",","sourceCodeStart":54,"sourceCodeEnd":90,"githubUrl":"https://github.com/tinyhumansai/openhuman/blob/749120085864ce16e0f273c7b86fac7740b39c5b/src/openhuman/channels/whatsapp_data/tools/list_messages.rs#L54-L90","documentation":"The whatsapp_data_list_messages tool arguments failed to deserialize into its request type: `chat_id` (required) missing, or limit/offset of the wrong JSON type. Wraps serde's field-level error with the tool-name prefix before any bus call.","triggerScenarios":"Thrown at src/openhuman/channels/whatsapp_data/tools/list_messages.rs:72 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Include the required `chat_id` string","Use integer limit >= 1 and offset >= 0"],"exampleFix":null,"handlingStrategy":"validation","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"}