{"record":{"id":"594f331d92d6da82","repo":"NousResearch/hermes-agent","slug":"codex-responses-input-idx-message-item-must-con","errorCode":null,"errorMessage":"Codex Responses input[{idx}] message item must contain at least one text part.","messagePattern":"Codex Responses input\\[(.+?)\\] message item must contain at least one text part\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"agent/codex_responses_adapter.py","lineNumber":872,"sourceCode":"            normalized_content = []\n            for part_idx, part in enumerate(content):\n                if not isinstance(part, dict):\n                    raise ValueError(\n                        f\"Codex Responses input[{idx}] message content[{part_idx}] must be an object.\"\n                    )\n                part_type = part.get(\"type\")\n                if part_type not in {\"output_text\", \"text\"}:\n                    raise ValueError(\n                        f\"Codex Responses input[{idx}] message content[{part_idx}] has unsupported type {part_type!r}.\"\n                    )\n                text = part.get(\"text\", \"\")\n                if text is None:\n                    text = \"\"\n                if not isinstance(text, str):\n                    text = str(text)\n                normalized_content.append({\"type\": \"output_text\", \"text\": sanitize_text(text)})\n            if not normalized_content:\n                raise ValueError(f\"Codex Responses input[{idx}] message item must contain at least one text part.\")\n            normalized_item: Dict[str, Any] = {\n                \"type\": \"message\",\n                \"role\": \"assistant\",\n                \"status\": _normalize_responses_message_status(item.get(\"status\")),\n                \"content\": normalized_content,\n            }\n            item_id = item.get(\"id\")\n            if (\n                not is_github_responses\n                and isinstance(item_id, str)\n                and item_id.strip()\n            ):\n                stripped_id = item_id.strip()\n                if len(stripped_id) <= _MAX_RESPONSES_ITEM_ID_LENGTH:\n                    normalized_item[\"id\"] = stripped_id\n            phase = item.get(\"phase\")\n            if isinstance(phase, str) and phase.strip():\n                normalized_item[\"phase\"] = phase.strip()","sourceCodeStart":854,"sourceCodeEnd":890,"githubUrl":"https://github.com/NousResearch/hermes-agent/blob/c896c09c42910c584c4c7d2325b58c14713ea42c/agent/codex_responses_adapter.py#L854-L890","documentation":"Error \"Codex Responses input[{idx}] message item must contain at least one text part.\" thrown in NousResearch/hermes-agent.","triggerScenarios":"Thrown at agent/codex_responses_adapter.py:872 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Ensure each assistant message item contains at least one text part.","Skip or repair messages that contain only non-text parts."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"c896c09c42910c584c4c7d2325b58c14713ea42c","analyzedAt":"2026-08-14T17:18:01.089Z","schemaVersion":2},"datasetVersion":"2026-08-15T17:31:12.345Z"}