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.