ThinkFacility

Error messages

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.
Claude API as of September 15, 2026 read September 15, 2026AnthropicAPI errors

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.

From Claude API errors
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.

From Claude API errors

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.