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

  1. Inspect the wrapped bus error for the handler-side cause
  2. Verify WhatsApp is connected and its local data store readable
  3. 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.