Bug description
On Claude Opus 4.8 with effortLevel: "xhigh", requests intermittently fail with:
API Error: 400 output_config.effort 'xhigh' is not supported when thinking is disabled on this model. Use effort 'high' or below, or enable thinking.
This happens despite alwaysThinkingEnabled: true in settings.json (key verified to exist against claude-code-settings.schema.json shipped with the extension). It looks like the client omits thinking: {type: "adaptive"} in some requests while still sending effort: "xhigh", which the API rejects.
Environment
- Claude Code: 2.1.205 → 2.1.207 (error reproduced across both)
- Entrypoint: VS Code extension (
claude-vscode), Windows 11 Home
- Model: Claude Opus 4.8 (subscription)
settings.json: effortLevel: "xhigh", alwaysThinkingEnabled: true (both schema-valid)
- Env:
CLAUDE_EFFORT=xhigh
Frequency / evidence
Counted from session transcripts (~/.claude/projects/*/*.jsonl), matching only synthetic API-error records ("isApiErrorMessage":true + the error text), main thread only:
- 13 error events total: 7 on 2026-07-09, 6 on 2026-07-11, across 7 different sessions
- All events have
isSidechain: false (main conversation loop); 0 events in subagent transcripts — subagents never hit this
- 3 of the 13 records share an identical timestamp within one session (likely one event recorded three times, or instant retries)
Expected
With alwaysThinkingEnabled: true (or absent, per its schema description: "When absent or true, thinking is enabled automatically for supported models"), every request on Opus 4.8 with effort: xhigh should include thinking: {type: "adaptive"} and succeed.
Actual
Some main-loop requests run without thinking and get rejected with the 400 above. Behavior is intermittent within the same session and across sessions started with identical config.
Possibly related
Workarounds found
- Switch to a model where thinking cannot be disabled (Fable 5): error is architecturally impossible there, confirmed gone after switching mid-session
- Or drop to
effortLevel: "high" on Opus 4.8 (error only fires on xhigh)
Bug description
On Claude Opus 4.8 with
effortLevel: "xhigh", requests intermittently fail with:This happens despite
alwaysThinkingEnabled: trueinsettings.json(key verified to exist againstclaude-code-settings.schema.jsonshipped with the extension). It looks like the client omitsthinking: {type: "adaptive"}in some requests while still sendingeffort: "xhigh", which the API rejects.Environment
claude-vscode), Windows 11 Homesettings.json:effortLevel: "xhigh",alwaysThinkingEnabled: true(both schema-valid)CLAUDE_EFFORT=xhighFrequency / evidence
Counted from session transcripts (
~/.claude/projects/*/*.jsonl), matching only synthetic API-error records ("isApiErrorMessage":true+ the error text), main thread only:isSidechain: false(main conversation loop); 0 events in subagent transcripts — subagents never hit thisExpected
With
alwaysThinkingEnabled: true(or absent, per its schema description: "When absent or true, thinking is enabled automatically for supported models"), every request on Opus 4.8 witheffort: xhighshould includethinking: {type: "adaptive"}and succeed.Actual
Some main-loop requests run without thinking and get rejected with the 400 above. Behavior is intermittent within the same session and across sessions started with identical config.
Possibly related
effortLevelchanges in settings.json when forked through the daemon" — same class (effort/thinking config not propagated), shipped right before this started for me (first event 2026-07-09 on 2.1.205)400 thinking options type cannot be disabled when reasoning_effort is set)thinking.disabled.display: Extra inputs are not permittedon subagent spawns)Workarounds found
effortLevel: "high"on Opus 4.8 (error only fires onxhigh)