openai/codex · error
duplicate tool call for model-visible call id {model_visible
Error message
duplicate tool call for model-visible call id {model_visible_call_id} What it means
Error "duplicate tool call for model-visible call id {model_visible_call_id}" thrown in openai/codex.
Source
Thrown at codex-rs/rollout-trace/src/reducer/tool.rs:422
turn.thread_id
);
}
}
Ok(())
}
fn ensure_unique_model_visible_tool_call(
&self,
model_visible_call_id: Option<&str>,
tool_call_id: &str,
) -> Result<()> {
let Some(model_visible_call_id) = model_visible_call_id else {
return Ok(());
};
if let Some(existing) = self.single_tool_for_model_visible_call(model_visible_call_id)?
&& existing != tool_call_id
{
bail!("duplicate tool call for model-visible call id {model_visible_call_id}");
}
Ok(())
}
fn single_tool_for_model_visible_call(
&self,
model_visible_call_id: &str,
) -> Result<Option<ToolCallId>> {
let mut matching = self
.rollout
.tool_calls
.values()
.filter(|tool| tool.model_visible_call_id.as_deref() == Some(model_visible_call_id))
.map(|tool| tool.tool_call_id.clone());
let first = matching.next();
if matching.next().is_some() {
bail!("multiple tool calls matched model-visible call id {model_visible_call_id}");
}View on GitHub (pinned to 339751715c)
When it happens
Trigger: Thrown at codex-rs/rollout-trace/src/reducer/tool.rs:422 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/3f4ac2442b678131.
Report an issue: GitHub.