Skip to main content
HTTP status: 400

Error message

When this error occurs

The run sent a tool_choice that forces a tool call, {"kind":"any"} or {"kind":"specific_tool"}, to a model that doesn’t accept one. Claude Sonnet 5.5 (anthropic.claude-sonnet-5.5) and Claude Opus 5.5 (anthropic.claude-opus-5.5) are such models: they always decide for themselves whether to call a tool.

How to fix

Use tool_choice: {"kind":"auto"}, or leave tool_choice out. The model still sees every tool you declared. If you need a particular tool called, say so in the message, for example “Use the confirm_booking tool.” To keep a forced call, run the conversation on a model that accepts one, such as anthropic.claude-opus-5.0.

Not affected

Structured output (output_format_schema) works on these models. The platform asks for the answer without forcing a tool, and retries if the model doesn’t give one.