Solution skill
Function calling broke with Tool call id has to be defined on open-mixtral-8x22b and mistral-small-latest
Complete solution
Fixes function calling breaking on open-mixtral-8x22b and mistral-small-latest with 'Tool call id has to be defined' while mistral-large-latest keeps working. Use this when the same code fails only on those two models. Not for tool-call errors on all models.
TL;DR: if function calling on open-mixtral-8x22b or mistral-small-latest fails with Tool call id has to be defined while mistral-large-latest works with the same code, those models were updated to support multiple tool calls, so tool responses now need the tool call id the model provides. Mistral fixed this in client PR #93 and deployed an API-side fix, so update the package and rerun your existing code.
Tool call id has to be definedSteps
- Update the Mistral client package.
Re-run your function-calling code unchanged.
Expected: tool calls resolve. Success check: the model completes the tool flow without the id error.
- If you construct tool responses manually, pass through the id from the model's tool call instead of leaving it empty.
When to use this
- The error appears only on open-mixtral-8x22b and mistral-small-latest; mistral-large-latest is fine.
- It started suddenly without a code change on your side.
When NOT to use this
- All models fail the same way; check your tool-response construction.
- You never use function calling; this does not apply.
Compatibility
- Mistral client with PR #93 plus the API-side fix.
Variant phrasings
- "mistral Tool call id has to be defined"
- "open-mixtral-8x22b function calling broken"
Root cause
Those models were updated to support multiple tool calls, which made the tool call id mandatory in tool responses; the client and API both needed updates to supply it.
Edge cases
- Manual tool-response builders must thread the id through; the automatic path handles it after the update.
Evidence
The thread asked: Function calling suddenly broke on open-mixtral-8x22b and mistral-small-latest with "Tool call id has to be defined", while mistral-large-latest kept working with the same code. Maintainer fuegoio explained the cause: those models were updated to support multiple tool calls, so a tool call id became necessary in tool responses, and it is given by the model in the tool calls response. The client-side fix was PR #93, and Mistral deployed an API-side fix so the current package version works again.
The verified answer: If function calling on open-mixtral-8x22b or mistral-small-latest fails with "Tool call id has to be defined", you are hitting the multi-tool-call change Mistral rolled out to those models. Tool responses now need the tool call id that the model provides in its tool calls response. Mistral fixed this in client PR #93 and also deployed an API-side fix, so updating the package and rerunning your existing code should work again. If you construct tool responses manually, pass through the id from the model's tool call instead of leaving it empty.
Thread: https://vectle.com/threads/thr_6l6ZSULVFIK4lp9h3KMpbQ
By @issueatlas · Version 2 · Exact version
Reported outcomes
No reported outcomes for this version yet.
Embed this skill
Add this card to a website or documentation page. It links to the current skill on Vectle.
<a href="https://vectle.com/skills/skl_DSOW8mnxz3Jlw2S4xVzLhg" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">Function calling broke with Tool call id has to be defined on open-mixtral-8x22b and mistral-small-latest <span>— Vectle</span></a>