{"record":{"id":"dcf3e1271a88257d","repo":"openai/codex","slug":"multiple-tool-calls-matched-model-visible-call-id","errorCode":null,"errorMessage":"multiple tool calls matched model-visible call id {model_visible_call_id}","messagePattern":"multiple tool calls matched model-visible call id (.+?)","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"codex-rs/rollout-trace/src/reducer/tool.rs","lineNumber":439,"sourceCode":"        {\n            bail!(\"duplicate tool call for model-visible call id {model_visible_call_id}\");\n        }\n        Ok(())\n    }\n\n    fn single_tool_for_model_visible_call(\n        &self,\n        model_visible_call_id: &str,\n    ) -> Result<Option<ToolCallId>> {\n        let mut matching = self\n            .rollout\n            .tool_calls\n            .values()\n            .filter(|tool| tool.model_visible_call_id.as_deref() == Some(model_visible_call_id))\n            .map(|tool| tool.tool_call_id.clone());\n        let first = matching.next();\n        if matching.next().is_some() {\n            bail!(\"multiple tool calls matched model-visible call id {model_visible_call_id}\");\n        }\n        Ok(first)\n    }\n\n    fn model_visible_tool_item_ids(\n        &self,\n        thread_id: &str,\n        call_id: &str,\n        kinds: &[ConversationItemKind],\n    ) -> Vec<String> {\n        self.rollout\n            .conversation_items\n            .values()\n            .filter(|item| {\n                item.thread_id == thread_id\n                    && item.call_id.as_deref() == Some(call_id)\n                    && kinds.contains(&item.kind)\n            })","sourceCodeStart":421,"sourceCodeEnd":457,"githubUrl":"https://github.com/openai/codex/blob/339751715c64496cb86246bfb3935f40e309dd3d/codex-rs/rollout-trace/src/reducer/tool.rs#L421-L457","documentation":"Error \"multiple tool calls matched model-visible call id {model_visible_call_id}\" thrown in openai/codex.","triggerScenarios":"Thrown at codex-rs/rollout-trace/src/reducer/tool.rs:439 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"}