openai/codex · error · anyhow::Error
duplicate codex turn start for {codex_turn_id}
Error message
duplicate codex turn start for {codex_turn_id} What it means
Error "duplicate codex turn start for {codex_turn_id}" thrown in openai/codex.
Source
Thrown at codex-rs/rollout-trace/src/reducer/thread.rs:135
thread.execution.status = match status {
RolloutStatus::Running => ExecutionStatus::Running,
RolloutStatus::Completed => ExecutionStatus::Completed,
RolloutStatus::Failed => ExecutionStatus::Failed,
RolloutStatus::Aborted => ExecutionStatus::Aborted,
};
Ok(())
}
/// Starts a Codex turn inside an existing thread.
pub(super) fn start_codex_turn(
&mut self,
seq: RawEventSeq,
wall_time_unix_ms: i64,
codex_turn_id: CodexTurnId,
thread_id: String,
) -> Result<()> {
if self.rollout.codex_turns.contains_key(&codex_turn_id) {
bail!("duplicate codex turn start for {codex_turn_id}");
}
self.thread_mut(&thread_id)?;
self.rollout.codex_turns.insert(
codex_turn_id.clone(),
CodexTurn {
codex_turn_id,
thread_id,
execution: ExecutionWindow {
started_at_unix_ms: wall_time_unix_ms,
started_seq: seq,
ended_at_unix_ms: None,
ended_seq: None,
status: ExecutionStatus::Running,
},
input_item_ids: Vec::new(),
},View on GitHub (pinned to 339751715c)
When it happens
Trigger: Thrown at codex-rs/rollout-trace/src/reducer/thread.rs:135 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/b48a4055e308d599.
Report an issue: GitHub.