{"record":{"id":"b2e706ab0bf81735","repo":"infiniflow/ragflow","slug":"whatsapp-gateway-base-url-is-required","errorCode":null,"errorMessage":"WhatsApp gateway_base_url is required","messagePattern":"WhatsApp gateway_base_url is required","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"api/channels/whatsapp/channel.py","lineNumber":78,"sourceCode":"        self._qr_data_url: str = \"\"\n        self._qr_updated_at: float = 0.0\n        self._connected_at: float = 0.0\n        self._last_snapshot_at: float = 0.0\n        self._session_id: str = \"\"\n        self._event_cursor: int = 0\n        self._seen_message_ids: dict[str, float] = {}\n\n    def _session_key(self) -> str:\n        value = str(self.account.session_key or \"\").strip()\n        return value or WHATSAPP_DEFAULT_SESSION_KEY\n\n    def _gateway_base_url(self) -> str:\n        return str(self.account.gateway_base_url or \"\").strip().rstrip(\"/\")\n\n    def _gateway_url(self, path: str) -> str:\n        base_url = self._gateway_base_url()\n        if not base_url:\n            raise ValueError(\"WhatsApp gateway_base_url is required\")\n        return f\"{base_url}/{path.lstrip('/')}\"\n\n    def _events_ws_url(self) -> str:\n        base_url = self._gateway_base_url()\n        if not base_url:\n            raise ValueError(\"WhatsApp gateway_base_url is required\")\n        if base_url.startswith(\"http://\"):\n            ws_base = f\"ws://{base_url.removeprefix('http://')}\"\n        elif base_url.startswith(\"https://\"):\n            ws_base = f\"wss://{base_url.removeprefix('https://')}\"\n        else:\n            ws_base = base_url\n        return f\"{ws_base}/whatsapp/{self._session_key()}/events/ws?after={self._event_cursor}\"\n\n    def _gateway_headers(self) -> dict[str, str]:\n        token = str(self.account.gateway_token or \"\").strip()\n        if not token:\n            return {}","sourceCodeStart":60,"sourceCodeEnd":96,"githubUrl":"https://github.com/infiniflow/ragflow/blob/554fb1133ac3861732235ad9c377eb5e0a770665/api/channels/whatsapp/channel.py#L60-L96","documentation":"Error \"WhatsApp gateway_base_url is required\" thrown in infiniflow/ragflow.","triggerScenarios":"Thrown at api/channels/whatsapp/channel.py:78 when the library encounters an invalid state.","commonSituations":"The WhatsApp channel is enabled without configuring the gateway base URL; adding the gateway address prevents this error.","solutions":["Set gateway_base_url in the WhatsApp channel configuration."],"exampleFix":"config = {'gateway_base_url': 'http://127.0.0.1:3000'}","handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"554fb1133ac3861732235ad9c377eb5e0a770665","analyzedAt":"2026-08-15T09:20:16.380Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}