[BUG] Unrecognized key in settings.json freezes the CLI instead of being reported

Status Open
Reported on v2.1.238
Maintainer reply None cached
Activity 0 comments · opened Aug 22, 2026

Preflight Checklist

  • [x] I have searched existing issues and this hasn't been reported yet
  • [x] This is a single bug report (please file separate reports for different bugs)
  • [x] I am using the latest version of Claude Code

What's Wrong?

Summary

Adding an unrecognized top-level key to ~/.claude/settings.json makes the interactive CLI freeze. Startup completes and the banner renders, but input stops being processed shortly afterwards — typically while the slash command menu is filtering. Ctrl+C has no effect; the process must be killed from outside.

The docs state that Claude Code reports invalid JSON or unaccepted values at the start of an interactive session, and that claude doctor lists rejected entries. Neither happened. There was no error message at any point.

What Should Happen?

Claude Code should report the unrecognized key at startup, as documented, and continue with the remaining valid settings — or refuse to start with a clear error. It should not start successfully and then hang on input.

Side effect worth noting

While diagnosing this, every restart attempt registered a new Remote Control session, because Remote Control auto-connect was on by default. Seven orphaned sessions accumulated in the session list and had to be deleted one by one from the mobile app. Sessions killed via Stop-Process remain listed with an "active" indicator; the state is not updated after a hard kill.

Turning off "Enable Remote Control for all sessions" in /config resolved the accumulation. The corresponding key is remoteControlAtStartup.

Error Messages/Logs

{
  "autoUpdatesChannel": "latest",
  "theme": "dark",
  "autoCompactEnabled": false,
  "disableRemoteControl": true
}

Steps to Reproduce

Steps to reproduce
Add an unrecognized top-level key to %USERPROFILE%\.claude\settings.json. In my case:
{
"autoUpdatesChannel": "latest",
"theme": "dark",
"autoCompactEnabled": false,
"disableRemoteControl": true
}
disableRemoteControl is documented in third-party references but is apparently not a valid key in this version. The JSON itself is valid.
Start claude in a terminal.
Type / and continue typing a command name, e.g. /conf.

Result: the slash command menu appears, then the session stops accepting input. Ctrl+C does not interrupt. No error message is shown.

Isolating the cause
Renaming settings.json away and starting claude: starts normally, accepts input, slash menu works.
Restoring the file without the unrecognized key: starts normally, works.
Same behavior in Windows Terminal and in a plain PowerShell window, so it is not terminal-host specific.
Same behavior on 2.1.238 and 2.1.240, so it is not specific to one build.
Expected behavior

Claude Code should report the unrecognized key at startup, as documented, and continue with the remaining valid settings — or refuse to start with a clear error. It should not start successfully and then hang on input.

Side effect worth noting

While diagnosing this, every restart attempt registered a new Remote Control session, because Remote Control auto-connect was on by default. Seven orphaned sessions accumulated in the session list and had to be deleted one by one from the mobile app. Sessions killed via Stop-Process remain listed with an "active" indicator; the state is not updated after a hard kill.

Turning off "Enable Remote Control for all sessions" in /config resolved the accumulation. The corresponding key is remoteControlAtStartup.

Claude Model

Not sure / Multiple models

Is this a regression?

Yes, this worked in a previous version

Last Working Version

2.1.237 ?

Claude Code Version

2.1.240

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

PowerShell

Additional Information

_No response_

View original on GitHub ↗