zed-industries/zed · error
Mistral does not support custom tool calls
Error message
Mistral does not support custom tool calls
What it means
Raised in into_mistral: the request contained a custom tool call that the Mistral provider's message conversion does not support, so conversion aborts. The provider cannot express the tool in its request format.
Source
Thrown at crates/language_models/src/provider/mistral.rs:463
if model.supports_thinking() {
messages.push(mistral::RequestMessage::Assistant {
content: Some(mistral::MessageContent::Multipart {
content: vec![mistral::MessagePart::Thinking {
thinking: vec![mistral::ThinkingPart::Text {
text: text.clone(),
}],
}],
}),
tool_calls: Vec::new(),
});
}
}
MessageContent::RedactedThinking(_) => {}
MessageContent::Image(_) => {}
MessageContent::Compaction(_) => {}
MessageContent::ToolUse(tool_use) => {
let input = tool_use.input.as_json().ok_or_else(|| {
anyhow!("Mistral does not support custom tool calls")
})?;
let tool_call = mistral::ToolCall {
id: tool_use.id.to_string(),
content: mistral::ToolCallContent::Function {
function: mistral::FunctionContent {
name: tool_use.name.to_string(),
arguments: serde_json::to_string(input).unwrap_or_default(),
},
},
};
if let Some(mistral::RequestMessage::Assistant { tool_calls, .. }) =
messages.last_mut()
{
tool_calls.push(tool_call);
} else {
messages.push(mistral::RequestMessage::Assistant {
content: None,View on GitHub (pinned to f4178619ac)
Solutions
- Avoid custom tools with Mistral models
- Pick a provider that supports custom tool input
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at crates/language_models/src/provider/mistral.rs:463 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of zed-industries/zed@f4178619ac (2026-08-20).
Data as JSON: /api/errors/14c0f69a65d8f499.
Report an issue: GitHub.