NousResearch/hermes-agent · error · ValueError

Codex Responses input[{idx}] message item must contain at le

Error message

Codex Responses input[{idx}] message item must contain at least one text part.

What it means

Error "Codex Responses input[{idx}] message item must contain at least one text part." thrown in NousResearch/hermes-agent.

Source

Thrown at agent/codex_responses_adapter.py:872

            normalized_content = []
            for part_idx, part in enumerate(content):
                if not isinstance(part, dict):
                    raise ValueError(
                        f"Codex Responses input[{idx}] message content[{part_idx}] must be an object."
                    )
                part_type = part.get("type")
                if part_type not in {"output_text", "text"}:
                    raise ValueError(
                        f"Codex Responses input[{idx}] message content[{part_idx}] has unsupported type {part_type!r}."
                    )
                text = part.get("text", "")
                if text is None:
                    text = ""
                if not isinstance(text, str):
                    text = str(text)
                normalized_content.append({"type": "output_text", "text": sanitize_text(text)})
            if not normalized_content:
                raise ValueError(f"Codex Responses input[{idx}] message item must contain at least one text part.")
            normalized_item: Dict[str, Any] = {
                "type": "message",
                "role": "assistant",
                "status": _normalize_responses_message_status(item.get("status")),
                "content": normalized_content,
            }
            item_id = item.get("id")
            if (
                not is_github_responses
                and isinstance(item_id, str)
                and item_id.strip()
            ):
                stripped_id = item_id.strip()
                if len(stripped_id) <= _MAX_RESPONSES_ITEM_ID_LENGTH:
                    normalized_item["id"] = stripped_id
            phase = item.get("phase")
            if isinstance(phase, str) and phase.strip():
                normalized_item["phase"] = phase.strip()

View on GitHub (pinned to c896c09c42)

Solutions

  1. Ensure each assistant message item contains at least one text part.
  2. Skip or repair messages that contain only non-text parts.

When it happens

Trigger: Thrown at agent/codex_responses_adapter.py:872 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of NousResearch/hermes-agent@c896c09c42 (2026-08-14). Data as JSON: /api/errors/594f331d92d6da82. Report an issue: GitHub.