claude-code - 💡(How to fix) Fix [BUG] effortLevel "max" in settings.json ignored at session start (downgrades to high) — v2.1.162, regression of #43322

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

Root Cause

  • /effort slider confirms max is a real, valid level: low → medium → high → xhigh → max. So this is not "max is invalid" — it is a persistence/startup bug.
  • The settings JSON schema still rejects max on the typed effortLevel field (enum stops at xhigh) — see #35904 and #59699. This schema/runtime mismatch is likely the root cause: the value is written/accepted but silently dropped on load.
  • Setting max via /effort mid-session always works, proving the level itself is functional.
  • Community workaround on #43322 (env var bypasses the schema enum and persists):
    { "env": { "CLAUDE_CODE_EFFORT_LEVEL": "max" } }
    …but this is a hard override that also blocks switching effort (incl. escalating) within the session, so it is not an equivalent fix.

Fix Action

Fix / Workaround

  • /effort slider confirms max is a real, valid level: low → medium → high → xhigh → max. So this is not "max is invalid" — it is a persistence/startup bug.
  • The settings JSON schema still rejects max on the typed effortLevel field (enum stops at xhigh) — see #35904 and #59699. This schema/runtime mismatch is likely the root cause: the value is written/accepted but silently dropped on load.
  • Setting max via /effort mid-session always works, proving the level itself is functional.
  • Community workaround on #43322 (env var bypasses the schema enum and persists):
    { "env": { "CLAUDE_CODE_EFFORT_LEVEL": "max" } }
    …but this is a hard override that also blocks switching effort (incl. escalating) within the session, so it is not an equivalent fix.

Code Example

{ "env": { "CLAUDE_CODE_EFFORT_LEVEL": "max" } }
RAW_BUFFERClick to expand / collapse

Bug

"effortLevel": "max" is set in ~/.claude/settings.json, but new sessions do not start at max. On the latest CLI they now start at high (previously reported as falling back to xhigh — this appears to have regressed further).

No /effort UI interaction is required to trigger it: it happens at plain session start.

This is a fresh report for the long-standing issue tracked in #43322, which was auto-closed as not planned (inactive) on 2026-06-03 with the message "Please open a new issue if this is still relevant." It is still relevant on v2.1.162.

Steps to reproduce

  1. Set "effortLevel": "max" in ~/.claude/settings.json (no project/local override).
  2. Start a brand-new Claude Code session (do not touch /effort).
  3. Observe the active effort level — it is high, not max.
  4. Run /effort and select max manually → works for that session only (Set effort level to max (this session only)).
  5. Start another new session → back to high.

Expected

A new session should start at max when effortLevel: "max" is set in global settings.

Evidence / notes

  • /effort slider confirms max is a real, valid level: low → medium → high → xhigh → max. So this is not "max is invalid" — it is a persistence/startup bug.
  • The settings JSON schema still rejects max on the typed effortLevel field (enum stops at xhigh) — see #35904 and #59699. This schema/runtime mismatch is likely the root cause: the value is written/accepted but silently dropped on load.
  • Setting max via /effort mid-session always works, proving the level itself is functional.
  • Community workaround on #43322 (env var bypasses the schema enum and persists):
    { "env": { "CLAUDE_CODE_EFFORT_LEVEL": "max" } }
    …but this is a hard override that also blocks switching effort (incl. escalating) within the session, so it is not an equivalent fix.

Environment

  • Claude Code CLI: 2.1.162
  • Node: v26.0.0
  • macOS: 15.7.4 (Darwin 24.6.0)
  • Model: claude-opus-4-8

Related (all closed or off-by-one in scenario)

  • #43322 — effortLevel "max" does not persist across sessions (closed not-planned/inactive 2026-06-03 — this report supersedes it)
  • #62783 — not respected on session start — falls back to xhigh (closed as duplicate of #43322)
  • #35904 — effortLevel setting doesn't support "max" value (open — schema enum)
  • #59699 — Effort slider fourth dot writes 'max' but schema only recognises 'xhigh' (closed)
  • #30726 — silently downgraded when user interacts with effort selection UI (open — different trigger; this report is the no-interaction startup variant)

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING