infiniflow/ragflow · error · RuntimeError

whatsapp events websocket error: {ws.exception()}

Error message

whatsapp events websocket error: {ws.exception()}

What it means

Error "whatsapp events websocket error: {ws.exception()}" thrown in infiniflow/ragflow.

Source

Thrown at api/channels/whatsapp/channel.py:288

        self._status = str(snapshot.get("status") or "connecting")
        self._last_error = str(snapshot.get("last_error") or "")
        self._qr_data_url = str(snapshot.get("qr_data_url") or "")
        self._qr_updated_at = float(snapshot.get("qr_updated_at") or 0.0)
        self._connected_at = float(snapshot.get("connected_at") or 0.0)
        self._session_id = str(snapshot.get("session_id") or self._session_id or "")
        self._event_cursor = max(self._event_cursor, int(snapshot.get("event_cursor") or 0))
        if self._status == "connected":
            self._last_error = ""

    async def _run_events_ws(self) -> None:
        session = await self._ensure_http_session()
        url = self._events_ws_url()
        async with session.ws_connect(url, headers=self._gateway_headers(), heartbeat=None) as ws:
            async for msg in ws:
                if msg.type == aiohttp.WSMsgType.TEXT:
                    await self._handle_ws_payload(msg.data)
                elif msg.type == aiohttp.WSMsgType.ERROR:
                    raise RuntimeError(f"whatsapp events websocket error: {ws.exception()}")
            LOGGER.warning("[whatsapp:%s] events websocket closed", self.account_id)

    async def _handle_ws_payload(self, payload: str) -> None:
        try:
            obj = json.loads(payload)
        except json.JSONDecodeError:
            LOGGER.warning(
                "[whatsapp:%s] ignored invalid websocket payload: %r",
                self.account_id,
                payload[:200],
            )
            return

        kind = str(obj.get("type") or "").strip()
        data = obj.get("data")
        if kind == "snapshot" and isinstance(data, dict):
            self._apply_snapshot(data)
            return

View on GitHub (pinned to 554fb1133a)

Solutions

  1. Check the gateway websocket endpoint and network connectivity.
  2. Restart the WhatsApp gateway and reconnect.

Example fix

# reconnect with backoff on websocket error
try:
    async with session.ws_connect(url) as ws:
        ...
except Exception as e:
    logger.error('whatsapp events websocket error: %s', e)

When it happens

Trigger: Thrown at api/channels/whatsapp/channel.py:288 when the library encounters an invalid state.

Common situations: The websocket connection to the WhatsApp gateway drops or fails, commonly from a gateway restart or network issue; reconnecting with backoff prevents this error.


AI-assisted analysis of infiniflow/ragflow@554fb1133a (2026-08-15). Data as JSON: /api/errors/b4436f4cccc56c61. Report an issue: GitHub.