{"record":{"id":"36f5c215dfd3ca3e","repo":"zed-industries/zed","slug":"lm-studio-does-not-support-custom-tool-calls","errorCode":null,"errorMessage":"LM Studio does not support custom tool calls","messagePattern":"LM Studio does not support custom tool calls","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"crates/language_models/src/provider/lmstudio.rs","lineNumber":368,"sourceCode":"                    ),\n                    MessageContent::Thinking { .. } => {}\n                    MessageContent::RedactedThinking(_) => {}\n                    MessageContent::Compaction(_) => {}\n                    MessageContent::Image(image) => {\n                        add_message_content_part(\n                            lmstudio::MessagePart::Image {\n                                image_url: lmstudio::ImageUrl {\n                                    url: image.to_base64_url(),\n                                    detail: None,\n                                },\n                            },\n                            message.role,\n                            &mut messages,\n                        );\n                    }\n                    MessageContent::ToolUse(tool_use) => {\n                        let input = tool_use.input.as_json().ok_or_else(|| {\n                            anyhow!(\"LM Studio does not support custom tool calls\")\n                        })?;\n                        let tool_call = lmstudio::ToolCall {\n                            id: tool_use.id.to_string(),\n                            content: lmstudio::ToolCallContent::Function {\n                                function: lmstudio::FunctionContent {\n                                    name: tool_use.name.to_string(),\n                                    arguments: serde_json::to_string(input).unwrap_or_default(),\n                                },\n                            },\n                        };\n\n                        if let Some(lmstudio::ChatMessage::Assistant { tool_calls, .. }) =\n                            messages.last_mut()\n                        {\n                            tool_calls.push(tool_call);\n                        } else {\n                            messages.push(lmstudio::ChatMessage::Assistant {\n                                content: None,","sourceCodeStart":350,"sourceCodeEnd":386,"githubUrl":"https://github.com/zed-industries/zed/blob/5a9b9558db01a6b906cec2fb70a797affdc58cdd/crates/language_models/src/provider/lmstudio.rs#L350-L386","documentation":"Raised in to_lmstudio_request: the language-model request contained a custom tool (LanguageModelToolUse/function tool), which the LM Studio provider's request conversion does not map. The provider cannot represent these tools in its API request.","triggerScenarios":"Thrown at crates/language_models/src/provider/lmstudio.rs:373 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Disable custom tools when targeting LM Studio","Update LM Studio to a version supporting the required tool schema, or use built-in tools only"],"exampleFix":null,"handlingStrategy":"validation","validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"5a9b9558db01a6b906cec2fb70a797affdc58cdd","analyzedAt":"2026-08-20T19:29:52.058Z","contentChangedAt":"2026-08-20T19:29:52.058Z","schemaVersion":2},"datasetVersion":"2026-09-14T05:17:10.506Z"}