{"record":{"id":"4c18b801a9ad8674","repo":"HKUDS/nanobot","slug":"mochat-api-error-msg-code-parsed-dict-code","errorCode":null,"errorMessage":"Mochat API error: {msg} (code={parsed_dict['code']})","messagePattern":"Mochat API error: (.+?) \\(code=(.+?)\\)","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"nanobot/channels/mochat/runtime.py","lineNumber":973,"sourceCode":"        response = await self._http.post(url, headers={\n            \"Content-Type\": \"application/json\", \"X-Claw-Token\": self.config.claw_token,\n        }, json=payload)\n        if not response.is_success:\n            raise RuntimeError(f\"Mochat HTTP {response.status_code}: {response.text[:200]}\")\n        try:\n            parsed = response.json()\n        except Exception:\n            parsed = response.text\n        if isinstance(parsed, dict):\n            parsed_dict = cast(dict[str, Any], parsed)\n            if isinstance(parsed_dict.get(\"code\"), int):\n                if parsed_dict[\"code\"] != 200:\n                    msg = str(\n                        parsed_dict.get(\"message\")\n                        or parsed_dict.get(\"name\")\n                        or \"request failed\"\n                    )\n                    raise RuntimeError(\n                        f\"Mochat API error: {msg} (code={parsed_dict['code']})\"\n                    )\n                data = parsed_dict.get(\"data\")\n                return cast(dict[str, Any], data) if isinstance(data, dict) else {}\n            return parsed_dict\n        return {}\n\n    async def _api_send(self, path: str, id_key: str, id_val: str,\n                        content: str, reply_to: str | None, group_id: str | None = None) -> dict[str, Any]:\n        \"\"\"Unified send helper for session and panel messages.\"\"\"\n        body: dict[str, Any] = {id_key: id_val, \"content\": content}\n        if reply_to:\n            body[\"replyTo\"] = reply_to\n        if group_id:\n            body[\"groupId\"] = group_id\n        return await self._post_json(path, body)\n\n    @staticmethod","sourceCodeStart":955,"sourceCodeEnd":991,"githubUrl":"https://github.com/HKUDS/nanobot/blob/42f37dc4c0e409eac7818a82d165c5f2757bc075/nanobot/channels/mochat/runtime.py#L955-L991","documentation":"Error \"Mochat API error: {msg} (code={parsed_dict['code']})\" thrown in HKUDS/nanobot.","triggerScenarios":"Thrown at nanobot/channels/mochat/runtime.py:973 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"42f37dc4c0e409eac7818a82d165c5f2757bc075","analyzedAt":"2026-08-26T00:18:52.276Z","schemaVersion":2},"datasetVersion":"2026-08-26T04:18:47.238Z"}