The neutral tool_choice="auto" repair intentionally preserves explicit none, required and named tool choices. The remaining forced-choice case needs its own investigation and an explicit decision about preserving both mandatory tool use and requested reasoning.
Historical local probes on September 4, 2026, of anthropic/claude-fable-5.1 through OpenRouter returned HTTP 200 for auto/none and an Anthropic HTTP 400 for required/named with reasoning enabled. Those small probes requested a greeting; they are evidence of request acceptance or rejection, not an end-to-end tool-execution test. On September 6, the model's four OpenRouter endpoint supported_parameters lists omitted tool_choice while separate tool-choice support flags reported true. Strict parameter routing can therefore reject an explicit choice before it reaches a model, independently of the provider's reasoning constraint.
No fresh paid forced-choice probe was performed for this issue. The current neutral-auto canary and full Main tool/result/final cycle pass, and this issue is not a regression introduced by default elision. The compaction summarizer retains its existing required-tool request and JSON fallback.
Revalidate the exact route with current metadata and small physical-request probes, distinguish router filtering from the upstream reasoning/tool constraint, then propose the smallest generalized solution at the existing request-wire boundary. Do not silently drop required/named intent, lower reasoning, or change strict routing to make the request pass. Any product trade-off between those requirements needs a separate owner decision.
Relevant current code: OpenRouter request construction, compaction caller and JSON fallback, and the provider's endpoint metadata. Earlier #229/#266 cover direct OpenAI wire adaptation, and #563 covers the direct DeepSeek route.
The neutral
tool_choice="auto"repair intentionally preserves explicitnone,requiredand named tool choices. The remaining forced-choice case needs its own investigation and an explicit decision about preserving both mandatory tool use and requested reasoning.Historical local probes on September 4, 2026, of
anthropic/claude-fable-5.1through OpenRouter returned HTTP 200 for auto/none and an Anthropic HTTP 400 for required/named with reasoning enabled. Those small probes requested a greeting; they are evidence of request acceptance or rejection, not an end-to-end tool-execution test. On September 6, the model's four OpenRouter endpointsupported_parameterslists omittedtool_choicewhile separate tool-choice support flags reported true. Strict parameter routing can therefore reject an explicit choice before it reaches a model, independently of the provider's reasoning constraint.No fresh paid forced-choice probe was performed for this issue. The current neutral-auto canary and full Main tool/result/final cycle pass, and this issue is not a regression introduced by default elision. The compaction summarizer retains its existing required-tool request and JSON fallback.
Revalidate the exact route with current metadata and small physical-request probes, distinguish router filtering from the upstream reasoning/tool constraint, then propose the smallest generalized solution at the existing request-wire boundary. Do not silently drop required/named intent, lower reasoning, or change strict routing to make the request pass. Any product trade-off between those requirements needs a separate owner decision.
Relevant current code: OpenRouter request construction, compaction caller and JSON fallback, and the provider's endpoint metadata. Earlier #229/#266 cover direct OpenAI wire adaptation, and #563 covers the direct DeepSeek route.