Missing Tool Results Error
Issue
You encounter the error AI_MissingToolResultsError with a message like:
Tool results are missing for tool calls: ...
Cause
This error occurs when you attempt to send a new message to the Large Language Model (LLM) while there are pending tool calls from a previous turn that have not yet been resolved.
The AI SDK core logic validates that all tool-call parts in the conversation history are resolved before proceeding. "Resolved" typically means:
- The tool has been executed and a
tool-resulthas been added to the history. - Or, the tool call has triggered a
tool-approval-response(if using tool approvals).
If a tool call is found without a corresponding result or approval response, this error is thrown to prevent sending an invalid conversation history to the model.
Solution
Ensure that every tool call in your conversation history is properly handled.
1. Provide Tool Results
For standard tool calls, ensure that you provide the output of the tool execution.
const messages = [ { role: 'user', content: 'What is the weather in NY?' }, { role: 'assistant', content: [ { type: 'tool-call', toolCallId: 'call_123', toolName: 'getWeather', args: { location: 'New York' }, }, ], }, // You MUST include this tool message with the result: { role: 'tool', content: [ { type: 'tool-result', toolCallId: 'call_123', toolName: 'getWeather', result: 'Sunny, 25°C', }, ], }, // Now you can add a new user message { role: 'user', content: 'And in London?' },];2. Handle Tool Approvals
If you are using the tool approval workflow, ensure that you include the tool-approval-response.
const messages = [ // ... assistant requests tool execution (needs approval) { role: 'tool', content: [ { type: 'tool-approval-response', approvalId: 'approval_123', approved: true, // or false }, ], },];