content/docs/09-troubleshooting/21-missing-tool-results-error.mdx
You encounter the error AI_MissingToolResultsError with a message like:
Tool results are missing for tool calls: ...
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:
tool-result has been added to the history.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.
Ensure that every tool call in your conversation history is properly handled.
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?' },
];
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
},
],
},
];