ToolChoiceViolationError
This error occurs when a generateText response does not satisfy an enforced
tool choice. It is thrown when toolChoice is set to 'required' but the
response contains no structured tool call, or when a specifically selected tool
was not called.
The error does not automatically interpret text or reasoning as an executable
tool call. You can inspect content to implement opt-in recovery, including
schema validation before executing any recovered call.
Properties
toolChoice: The effective tool choice that the response did not satisfyfinishReason: The reason why the model finished generating the responseprovider: The provider that returned the responsemodelId: The model that returned the responsecontent: The normalized content returned by the modelmessage: The error message
Checking for this Error
You can check if an error is an instance of ToolChoiceViolationError using:
import { ToolChoiceViolationError } from 'ai';
if (ToolChoiceViolationError.isInstance(error)) { const serializedCall = error.content.find(part => part.type === 'text')?.text;
// Parse and validate serializedCall before treating it as a tool call.}