{"record":{"id":"4edb2b755f1b423b","repo":"openai/codex","slug":"unsupported-message-role-role-in-payload","errorCode":null,"errorMessage":"unsupported message role {role} in payload {}","messagePattern":"unsupported message role (.+?) in payload (.+?)","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"codex-rs/rollout-trace/src/reducer/conversation/normalize.rs","lineNumber":173,"sourceCode":"        _ => bail!(\n            \"unsupported model item type {item_type} in payload {}\",\n            raw_payload.raw_payload_id\n        ),\n    }\n}\n\nfn normalize_message_item(\n    item: &Value,\n    raw_payload: &RawPayloadRef,\n) -> Result<NormalizedConversationItem> {\n    let Some(role) = item.get(\"role\").and_then(Value::as_str) else {\n        bail!(\n            \"message item in payload {} did not contain a string role\",\n            raw_payload.raw_payload_id\n        );\n    };\n    let Some(role) = role_from_str(role) else {\n        bail!(\n            \"unsupported message role {role} in payload {}\",\n            raw_payload.raw_payload_id\n        );\n    };\n    Ok(NormalizedConversationItem {\n        role,\n        channel: item\n            .get(\"phase\")\n            .and_then(Value::as_str)\n            .and_then(channel_from_phase),\n        kind: ConversationItemKind::Message,\n        agent_message: None,\n        body: ConversationBody {\n            parts: content_parts(item.get(\"content\"), raw_payload),\n        },\n        call_id: None,\n    })\n}","sourceCodeStart":155,"sourceCodeEnd":191,"githubUrl":"https://github.com/openai/codex/blob/339751715c64496cb86246bfb3935f40e309dd3d/codex-rs/rollout-trace/src/reducer/conversation/normalize.rs#L155-L191","documentation":"Error \"unsupported message role {role} in payload {}\" thrown in openai/codex.","triggerScenarios":"Thrown at codex-rs/rollout-trace/src/reducer/conversation/normalize.rs:173 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":"339751715c64496cb86246bfb3935f40e309dd3d","analyzedAt":"2026-08-25T05:35:09.876Z","schemaVersion":2},"datasetVersion":"2026-08-25T06:17:31.827Z"}