tool_choice: type "tool" and "any" are not supported for this model.
The message
tool_choice: type "tool" and "any" are not supported for this model.What it means
Claude Fable 5.1 and Claude Mythos 5.1 don't support forced tool use. Sending tool_choice with type any or type tool returns a 400 invalid_request_error, including on the token counting endpoint.
What to do
Send tool_choice auto, which is the default, or none. Anthropic points at strict tool use to keep tool inputs schema-valid, and at structured outputs when the response itself has to arrive in a fixed JSON shape.
Claude Fable 5.1 and Claude Mythos 5.1 don't take forced tool use. Send tool_choice with type "any", or with type "tool" and a name, and the API answers with a 400 invalid_request_error carrying one line.
tool_choice: type "tool" and "any" are not supported for this model.
- Models
- Claude Fable 5.1 and Claude Mythos 5.1
- Response
- 400 invalid_request_error
- Also on
- The token counting endpoint
- Accepted
- tool_choice auto, the default, and none
Why it turns up all at once
The limit is per model, so code that ran for months can start failing on the request after a model swap. It also fires on the token counting endpoint, which is the part that catches people out: a client that prices a call before making it will throw on the estimate rather than on the answer.
What to send instead
Anthropic's docs say tool_choice auto, the default, and tool_choice none are both accepted. If you were forcing a tool to keep the arguments clean, the docs send you to strict tool use, which holds tool inputs to their schema. If you were forcing one to get a predictable shape back, structured outputs do that job directly.
The other 400s on these models
Thinking is always on for Fable 5.1 and Mythos 5.1, so a request that turns it off is refused.
"thinking.type.disabled" is not supported for this model.
Drop the thinking parameter and the request runs with adaptive thinking. (To keep thinking out of the response without turning it off, the docs use display: "omitted".)
There's a third one specific to Fable 5.1, and it's the one that looks like flakiness: a replayed thinking block is accepted only while the system prompt, tools and earlier messages are unchanged. For accounts created on or after August 31, 2026, a block whose history changed comes back as a 400 saying the block "is bound to a different conversation".
When it isn't your request
Two codes on the same page mean the model is fine and the capacity isn't. A 529 overloaded_error is "The API is temporarily overloaded", which the docs tie to high traffic across all users. A 429 rate_limit_error can also mean your own organization ramped up too fast, and the advice there is to raise traffic gradually.
The official SDKs already retry transient failures with exponential backoff, twice by default. A 400 gets no retry, because nothing about sending it again is different.