settings.local.json language preference is overridden by settings.json

Resolved 💬 1 comment Opened Jun 22, 2026 by devslaweekq Closed Jun 22, 2026

Bug Report

Claude Code version: 2.1.185

Environment:

  • Claude Code CLI
  • Project with both .claude/settings.json and .claude/settings.local.json

Expected behavior

settings.local.json is the developer's personal override file. Settings defined there should take precedence over settings.json (the shared/corporate project settings). This is a standard pattern in development tools — local overrides win.

Actual behavior

When settings.json contains "language": "english" and settings.local.json contains "language": "japan", Claude Code uses "english". The corporate/project-level setting silently overrides the developer's personal preference.

Why this is a bug

settings.json is committed to git and shared across the team. It should define defaults/baselines. settings.local.json is gitignored and personal — it exists precisely so individual developers can override shared settings. Ignoring it defeats its purpose entirely.

Steps to reproduce

  1. Set "language": "english" in .claude/settings.json
  2. Set "language": "japan" in .claude/settings.local.json
  3. Start a Claude Code session — Claude responds in English, ignoring the local override.

Expected priority order

settings.local.json  >  settings.json  (project level)  >  global defaults

Currently it appears to be the opposite, at least for the language field.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗