[BUG] [bedrock] Regression in 2.1.287: auto mode classifier sends thinking.type "disabled" → HTTP 400 on Opus 5.5 / Sonnet 5.5, all Bash calls blocked

Status Open
Reported on v2.1.287
Maintainer reply None cached
Activity 0 comments · opened Oct 2, 2026

Summary

Since Claude Code 2.1.287, every auto mode classifier request fails with HTTP 400 when using Bedrock application inference profiles for Claude Opus 5.5 and Sonnet 5.5. The classifier sends thinking.type: "disabled", which these models no longer accept. Auto mode then fails closed and blocks every Bash call that is not covered by an allow rule, with a misleading "temporarily unavailable" message.

Downgrading to 2.1.285 (current stable) with the identical configuration fixes it, so this looks like a regression introduced between 2.1.285 and 2.1.287 (2.1.286 not tested).

The main conversation loop works fine on 2.1.287 with the same profiles. It honors adaptive_thinking from *_SUPPORTED_CAPABILITIES, but the classifier side query does not.

Environment

  • Claude Code 2.1.287 (broken) vs. 2.1.285 (works), macOS, native install
  • CLAUDE_CODE_USE_BEDROCK=1, region eu-central-1, CLAUDE_CODE_ENABLE_AUTO_MODE=1
  • Model settings:

``
ANTHROPIC_DEFAULT_OPUS_MODEL=arn:aws:bedrock:eu-central-1:<ACCOUNT_ID>:application-inference-profile/<OPUS_PROFILE>[1m]
ANTHROPIC_DEFAULT_OPUS_MODEL_SUPPORTED_CAPABILITIES=effort,xhigh_effort,max_effort,thinking,adaptive_thinking,interleaved_thinking
ANTHROPIC_DEFAULT_SONNET_MODEL=arn:aws:bedrock:eu-central-1:<ACCOUNT_ID>:application-inference-profile/<SONNET_PROFILE>[1m]
ANTHROPIC_DEFAULT_SONNET_MODEL_SUPPORTED_CAPABILITIES=effort,max_effort,thinking,adaptive_thinking,interleaved_thinking
``
(Opus profile → Claude Opus 5.5, Sonnet profile → Claude Sonnet 5.5)

Steps to reproduce

  1. Configure Bedrock with application inference profiles for Opus 5.5 and Sonnet 5.5 as above.
  2. Run Claude Code 2.1.287 in auto mode.
  3. Have the agent run any Bash command that is not covered by an allow rule (e.g. git checkout -b foo).
  4. Install 2.1.285 (claude install stable), restart, repeat step 3. The command is classified and runs normally.

Actual behavior (2.1.287)

The tool call is denied with:

arn:aws:bedrock:...:application-inference-profile/<OPUS_PROFILE>[1m] is temporarily unavailable, so auto mode cannot determine the safety of Bash right now.

claude --debug log:

[INFO] [Stall] classifier_request_started ... model=arn:aws:bedrock:eu-central-1:<ACCOUNT_ID>:application-inference-profile/<SONNET_PROFILE>[1m] stage=xml_s1
[WARN] [Stall] classifier_request_finished ... outcome=error durationMs=221 errorKind=Error errorChars=213
[WARN] Got error trying Sonnet 5 as auto mode classifier, using arn:aws:bedrock:...:application-inference-profile/<OPUS_PROFILE>[1m]
[DEBUG] Auto mode classifier: Sonnet 5 probe demotion errorKind=http_400
[WARN] Auto mode classifier: primary ...<SONNET_PROFILE>[1m] unavailable (http_400); trying fallback ...<OPUS_PROFILE>[1m]
[WARN] [Stall] classifier_request_finished ... outcome=error durationMs=249 errorKind=Error errorChars=147
[WARN] Auto mode classifier unavailable, denying with retry guidance (fail closed)

The dumped auto-mode-classifier-error.txt contains:

400 "thinking.type.disabled" is not supported for this model. Use "thinking.type.adaptive" and "output_config.effort" to control thinking behavior.

(Only the last error, from the Opus fallback, is kept in the dump. The Sonnet attempt is also logged as http_400.)

Ruled out

Each was tested on 2.1.287 with a restart; the error stayed the same:

  • Removing MAX_THINKING_TOKENS (was 10000)
  • Removing the [1m] suffix from both model ARNs
  • Waiting and retrying across several restarts (not transient)

Expected behavior

As in 2.1.285: the classifier request should use thinking.type: "adaptive" (plus output_config.effort) for models that declare adaptive_thinking or don't support disabling thinking. Also, a deterministic HTTP 400 should not be reported as "temporarily unavailable".

Workaround

Stay on the stable channel (claude install stable, "autoUpdatesChannel": "stable"), leave auto mode, or add permissions.allow rules so commands skip the classifier.

Related

  • #96411 (classifier picks the wrong model for non-default providers)
  • #95118 (classifier timeouts with claude-opus-5[1m])

View original on GitHub ↗