{"record":{"id":"79dbd90f41d9d60b","repo":"openai/codex","slug":"model-visible-call-id-call-id-was-reused-with-di","errorCode":null,"errorMessage":"model-visible call id {call_id} was reused with different content","messagePattern":"model-visible call id (.+?) was reused with different content","errorType":"exception","errorClass":"anyhow::Error","httpStatus":null,"severity":"error","filePath":"codex-rs/rollout-trace/src/reducer/conversation.rs","lineNumber":495,"sourceCode":"            })\n            .cloned()\n    }\n\n    fn ensure_call_id_consistency(\n        &self,\n        thread_id: &str,\n        normalized: &NormalizedConversationItem,\n    ) -> Result<()> {\n        let Some(call_id) = normalized.call_id.as_deref() else {\n            return Ok(());\n        };\n        for item in self.rollout.conversation_items.values() {\n            if item.thread_id == thread_id\n                && item.call_id.as_deref() == Some(call_id)\n                && item.kind == normalized.kind\n                && !conversation_item_matches(item, normalized)\n            {\n                bail!(\"model-visible call id {call_id} was reused with different content\");\n            }\n        }\n        Ok(())\n    }\n\n    fn item_matches(&self, item_id: &str, normalized: &NormalizedConversationItem) -> bool {\n        let Some(item) = self.rollout.conversation_items.get(item_id) else {\n            return false;\n        };\n        conversation_item_matches(item, normalized)\n    }\n\n    fn next_conversation_item_id(&mut self) -> String {\n        let ordinal = self.next_conversation_item_ordinal;\n        self.next_conversation_item_ordinal += 1;\n        format!(\"conversation_item:{ordinal}\")\n    }\n}","sourceCodeStart":477,"sourceCodeEnd":513,"githubUrl":"https://github.com/openai/codex/blob/339751715c64496cb86246bfb3935f40e309dd3d/codex-rs/rollout-trace/src/reducer/conversation.rs#L477-L513","documentation":"Error \"model-visible call id {call_id} was reused with different content\" thrown in openai/codex.","triggerScenarios":"Thrown at codex-rs/rollout-trace/src/reducer/conversation.rs:495 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"}