UNPKG

ai

Version:

AI SDK by Vercel - build apps like ChatGPT, Claude, Gemini, and more with a single interface for any model using the Vercel AI Gateway or go direct to OpenAI, Anthropic, Google, or any other model provider.

44 lines (33 loc) • 1.58 kB
--- title: ToolChoiceViolationError description: Learn how to fix AI SDK ToolChoiceViolationError --- # ToolChoiceViolationError This error occurs when a `generateText` or `streamText` response does not satisfy an enforced tool choice. It is thrown when `toolChoice` is set to `'none'` but the response contains a tool call, when `'required'` produces no structured tool call, or when a specifically selected tool was not called. With `streamText`, the error is emitted in the stream. Tool calls returned while `'none'` is selected are not executed. The error does not automatically interpret text or reasoning as an executable tool call. When tool calls are allowed, 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 satisfy - `finishReason`: The reason why the model finished generating the response - `provider`: The provider that returned the response - `modelId`: The model that returned the response - `content`: The normalized content returned by the model - `message`: The error message ## Checking for this Error You can check if an error is an instance of `ToolChoiceViolationError` using: ```typescript import { ToolChoiceViolationError } from 'ai'; if ( ToolChoiceViolationError.isInstance(error) && error.toolChoice.type !== 'none' ) { const serializedCall = error.content.find(part => part.type === 'text')?.text; // Parse and validate serializedCall before treating it as a tool call. } ```