{"record":{"id":"4fadb0c087f7c296","repo":"HKUDS/nanobot","slug":"mochat-http-response-status-code-response-text","errorCode":null,"errorMessage":"Mochat HTTP {response.status_code}: {response.text[:200]}","messagePattern":"Mochat HTTP (.+?): (.+?)","errorType":"exception","errorClass":"RuntimeError","httpStatus":null,"severity":"error","filePath":"nanobot/channels/mochat/runtime.py","lineNumber":959,"sourceCode":"            self._cursor_path.write_text(json.dumps({\n                \"schemaVersion\": 1,\n                \"updatedAt\": datetime.utcnow().isoformat(),  # pyright: ignore[reportDeprecated]\n                \"cursors\": self._session_cursor,\n            }, ensure_ascii=False, indent=2) + \"\\n\", \"utf-8\")\n        except Exception as e:\n            self.logger.warning(\"Failed to save cursor file: {}\", e)\n\n    # ---- HTTP helpers ------------------------------------------------------\n\n    async def _post_json(self, path: str, payload: dict[str, Any]) -> dict[str, Any]:\n        if not self._http:\n            raise RuntimeError(\"Mochat HTTP client not initialized\")\n        url = f\"{self.config.base_url.strip().rstrip('/')}{path}\"\n        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 {}","sourceCodeStart":941,"sourceCodeEnd":977,"githubUrl":"https://github.com/HKUDS/nanobot/blob/42f37dc4c0e409eac7818a82d165c5f2757bc075/nanobot/channels/mochat/runtime.py#L941-L977","documentation":"Error \"Mochat HTTP {response.status_code}: {response.text[:200]}\" thrown in HKUDS/nanobot.","triggerScenarios":"Thrown at nanobot/channels/mochat/runtime.py:959 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"}