tinyhumansai/openhuman · error
whatsapp_data_list_chats: {e}
Error message
whatsapp_data_list_chats: {e} What it means
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.
Source
Thrown at src/openhuman/channels/whatsapp_data/tools/list_chats.rs:81
req.offset,
);
let chats: Vec<WhatsAppChat> = match BUS.native().request(methods::LIST_CHATS, req).await {
Ok(chats) => chats,
Err(e) if is_handler_absent(&e) => {
// Headless / CLI / docker: no desktop shell handler is
// registered. Degrade gracefully to an empty result.
log::debug!("[tool][whatsapp_data] list_chats handler_absent — degrading ({e})");
let body = serde_json::to_string(&json!({
"provider": "whatsapp",
"count": 0,
"chats": [],
"note": UNAVAILABLE_NOTE,
}))?;
return Ok(ToolResult::success(body));
}
Err(e) => {
log::warn!("[tool][whatsapp_data] list_chats bridge_error error={e}");
return Err(anyhow::anyhow!("whatsapp_data_list_chats: {e}"));
}
};
log::debug!(
"[tool][whatsapp_data] list_chats returning count={}",
chats.len()
);
let body = serde_json::to_string(&json!({
"provider": "whatsapp",
"count": chats.len(),
"chats": chats,
}))?;
Ok(ToolResult::success(body))
}
fn is_concurrency_safe(&self, _args: &serde_json::Value) -> bool {
true
}
}View on GitHub (pinned to 7491200858)
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
Defensive patterns
Strategy: fallback
When it happens
Trigger: Thrown at src/openhuman/channels/whatsapp_data/tools/list_chats.rs:81 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of tinyhumansai/openhuman@7491200858 (2026-08-17).
Data as JSON: /api/errors/52711fac1a31dfd8.
Report an issue: GitHub.