openai/codex · error · anyhow::Error

message item in payload {} did not contain a string role

Error message

message item in payload {} did not contain a string role

What it means

Error "message item in payload {} did not contain a string role" thrown in openai/codex.

Source

Thrown at codex-rs/rollout-trace/src/reducer/conversation/normalize.rs:167

                kind: ConversationItemKind::Message,
                agent_message: None,
                body: compaction_body(item, raw_payload)?,
                call_id: None,
            })
        }
        _ => bail!(
            "unsupported model item type {item_type} in payload {}",
            raw_payload.raw_payload_id
        ),
    }
}

fn normalize_message_item(
    item: &Value,
    raw_payload: &RawPayloadRef,
) -> Result<NormalizedConversationItem> {
    let Some(role) = item.get("role").and_then(Value::as_str) else {
        bail!(
            "message item in payload {} did not contain a string role",
            raw_payload.raw_payload_id
        );
    };
    let Some(role) = role_from_str(role) else {
        bail!(
            "unsupported message role {role} in payload {}",
            raw_payload.raw_payload_id
        );
    };
    Ok(NormalizedConversationItem {
        role,
        channel: item
            .get("phase")
            .and_then(Value::as_str)
            .and_then(channel_from_phase),
        kind: ConversationItemKind::Message,
        agent_message: None,

View on GitHub (pinned to 339751715c)

When it happens

Trigger: Thrown at codex-rs/rollout-trace/src/reducer/conversation/normalize.rs:167 when the library encounters an invalid state.

Common situations: See trigger scenarios.


AI-assisted analysis of openai/codex@339751715c (2026-08-25). Data as JSON: /api/errors/ff5e807c85259f03. Report an issue: GitHub.