{"record":{"id":"b57f5870c610168c","repo":"zed-industries/zed","slug":"received-incomplete-tool-call-missing-id-or-name","errorCode":null,"errorMessage":"Received incomplete tool call: missing id or name","messagePattern":"Received incomplete tool call: missing id or name","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/language_models/src/provider/mistral.rs","lineNumber":737,"sourceCode":"                }\n                unexpected => {\n                    log::error!(\"Unexpected Mistral stop_reason: {unexpected:?}\");\n                    events.push(Ok(LanguageModelCompletionEvent::Stop(StopReason::EndTurn)));\n                }\n            }\n        }\n\n        events\n    }\n\n    fn process_tool_calls(\n        &mut self,\n    ) -> Vec<Result<LanguageModelCompletionEvent, LanguageModelCompletionError>> {\n        let mut results = Vec::new();\n\n        for (_, tool_call) in self.tool_calls_by_index.drain() {\n            if tool_call.id.is_empty() || tool_call.name.is_empty() {\n                results.push(Err(LanguageModelCompletionError::from(anyhow!(\n                    \"Received incomplete tool call: missing id or name\"\n                ))));\n                continue;\n            }\n\n            match parse_tool_arguments(&tool_call.arguments) {\n                Ok(input) => results.push(Ok(LanguageModelCompletionEvent::ToolUse(\n                    LanguageModelToolUse {\n                        id: tool_call.id.into(),\n                        name: tool_call.name.into(),\n                        is_input_complete: true,\n                        input: language_model::LanguageModelToolUseInput::Json(input),\n                        raw_input: tool_call.arguments,\n                        thought_signature: None,\n                    },\n                ))),\n                Err(error) => {\n                    results.push(Ok(LanguageModelCompletionEvent::ToolUseJsonParseError {","sourceCodeStart":719,"sourceCodeEnd":755,"githubUrl":"https://github.com/zed-industries/zed/blob/f4178619acd0d47ea1f76a2025c42962c6d6638c/crates/language_models/src/provider/mistral.rs#L719-L755","documentation":"Guard in process_tool_calls: after assembling streamed tool-call deltas by index, a tool call still lacks an id or name, so it cannot be emitted as a valid ToolUse event. Indicates the provider sent a truncated or malformed tool-call stream.","triggerScenarios":"Thrown at crates/language_models/src/provider/mistral.rs:737 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Retry the completion; streaming truncation is usually transient","Reduce response length or disable tool use if it recurs on long tool calls"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"f4178619acd0d47ea1f76a2025c42962c6d6638c","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}