{"record":{"id":"93f2ab33d27484ba","repo":"openai/codex","slug":"tool-call-tool-call-id-disappeared-during-conver","errorCode":null,"errorMessage":"tool call {tool_call_id} disappeared during conversation linking","messagePattern":"tool call (.+?) disappeared during conversation linking","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"codex-rs/rollout-trace/src/reducer/tool.rs","lineNumber":464,"sourceCode":"        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            })\n            .map(|item| item.item_id.clone())\n            .collect::<Vec<_>>()\n    }\n\n    fn add_tool_call_item(&mut self, tool_call_id: &str, item_id: &str) -> Result<()> {\n        let Some(tool_call) = self.rollout.tool_calls.get_mut(tool_call_id) else {\n            bail!(\"tool call {tool_call_id} disappeared during conversation linking\");\n        };\n        push_unique(&mut tool_call.model_visible_call_item_ids, item_id);\n        Ok(())\n    }\n\n    fn add_tool_output_item(&mut self, tool_call_id: &str, item_id: &str) -> Result<()> {\n        let Some(tool_call) = self.rollout.tool_calls.get_mut(tool_call_id) else {\n            bail!(\"tool call {tool_call_id} disappeared during output linking\");\n        };\n        push_unique(&mut tool_call.model_visible_output_item_ids, item_id);\n\n        let Some(item) = self.rollout.conversation_items.get_mut(item_id) else {\n            bail!(\"conversation item {item_id} disappeared during output linking\");\n        };\n        let producer = ProducerRef::Tool {\n            tool_call_id: tool_call_id.to_string(),\n        };\n        if !item.produced_by.contains(&producer) {","sourceCodeStart":446,"sourceCodeEnd":482,"githubUrl":"https://github.com/openai/codex/blob/339751715c64496cb86246bfb3935f40e309dd3d/codex-rs/rollout-trace/src/reducer/tool.rs#L446-L482","documentation":"Error \"tool call {tool_call_id} disappeared during conversation linking\" thrown in openai/codex.","triggerScenarios":"Thrown at codex-rs/rollout-trace/src/reducer/tool.rs:464 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"}