[DOCS] Errors guide omits `thinking.disabled.display` variant of `Extra inputs are not permitted`
Documentation Type
Incorrect/outdated documentation
Documentation Location
https://code.claude.com/docs/en/errors
Section/Topic
The Extra inputs are not permitted troubleshooting section, especially its explanation of the cause and its fallback guidance.
Current Documentation
The errors reference currently says:
A proxy or LLM gateway between Claude Code and the API stripped theanthropic-betarequest header, so the API rejected fields that depend on it. API Error: 400 ... Extra inputs are not permitted ... context_management API Error: 400 ... Extra inputs are not permitted ... tools.0.custom.input_examples API Error: 400 ... Unexpected value(s) for theanthropic-betaheader Configure your gateway to forward theanthropic-betaheader. As a fallback, setCLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1before launching. This disables features that require the beta header so requests succeed through a gateway that cannot forward it.
Elsewhere, the docs already describe separate thinking-related controls:
CLAUDE_CODE_DISABLE_TERMINAL_TITLE| Set to1to disable automatic terminal title updates based on conversation context. In Agent SDK andclaude -psessions, this also skips the background Haiku request that generates the session title
CLAUDE_CODE_DISABLE_THINKING| Set to1to omit thethinkingparameter from API requests entirely. This is a compatibility option for proxies and gateways that reject the parameter.
Disable regardless of effort | SetMAX_THINKING_TOKENS=0, which turns thinking off on the Anthropic API except on Fable 5. On third-party providers this omits thethinkingparameter instead, and adaptive-reasoning models may still think.
What's Wrong or Missing?
A. The errors guide reads as if every Extra inputs are not permitted response is a stripped-beta-header problem
The v2.1.183 changelog documents another user-visible variant:
Fixed thinking.disabled.display: Extra inputs are not permitted 400 errors on subagent spawns and session-title generation for affected configurations
That means the current troubleshooting text is too narrow. It explains only the anthropic-beta header case and does not mention the thinking.disabled.display variant at all.
B. The documented fallback points to the beta-header knob, not the thinking-compatibility knobs
The current section sends readers straight to CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1, which is appropriate for context_management and input_examples errors tied to the anthropic-beta header. It does not explain that Claude Code also documents separate controls for thinking-parameter compatibility (CLAUDE_CODE_DISABLE_THINKING, MAX_THINKING_TOKENS=0) or that session-title generation has its own background-request toggle (CLAUDE_CODE_DISABLE_TERMINAL_TITLE).
C. The affected surfaces are not named
The release note says this 400 showed up on subagent spawns and session-title generation. Those are concrete user workflows, but the troubleshooting page does not tell readers that background requests like those can be where the thinking.disabled.display variant appears.
Suggested Improvement
Expand the Extra inputs are not permitted section so it distinguishes between the known variants instead of presenting one universal cause.
Suggested structure:
- Keep the existing
anthropic-betaheader branch for errors likecontext_management,tools.0.custom.input_examples, andUnexpected value(s) for the anthropic-beta header. - Add a second branch for
thinking.disabled.display, with guidance such as:
- if this appears on subagent spawns or session-title generation, upgrade to Claude Code v2.1.183 or later
- for provider or gateway compatibility debugging, see
CLAUDE_CODE_DISABLE_THINKING,MAX_THINKING_TOKENS=0, andCLAUDE_CODE_DISABLE_TERMINAL_TITLE
- Clarify that
CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1is a remedy for beta-header-relatedExtra inputs are not permittederrors, not the general fix for every variant of that message.
Impact
Medium - Makes feature difficult to understand
Additional Context
Affected Pages:
| Page | Line(s) | Context |
|------|---------|---------|
| https://code.claude.com/docs/en/errors | 583-598 | Extra inputs are not permitted is explained only as a stripped-anthropic-beta case and only points to CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS=1 |
Total scope: 1 page affected
Related references already in the docs:
| Page | Line(s) | Context |
|------|---------|---------|
| https://code.claude.com/docs/en/env-vars | 185-186 | CLAUDE_CODE_DISABLE_TERMINAL_TITLE and CLAUDE_CODE_DISABLE_THINKING describe the session-title and thinking-parameter controls |
| https://code.claude.com/docs/en/model-config | 348-350 | MAX_THINKING_TOKENS=0 documents the thinking-disable path, including third-party-provider behavior |
| https://code.claude.com/docs/en/changelog | 20 | v2.1.183 records the thinking.disabled.display 400 on subagent spawns and session-title generation |
Version: Claude Code v2.1.183