[Bug] Remote settings short-circuit managed settings chain without merge

Resolved 💬 2 comments Opened Apr 26, 2026 by mattisdalleau-gg Closed May 30, 2026

Bug Description
/etc/claude-code/managed-settings.json does not load and do not merge due to enforced ~/.claude/remote-settings.json by Anthropic. Opus had to reverse the obfuscated code to understand the problem. There is no clear documentation about the enforced data and no warning about it.

Code snippet that Opus dig

● Bash(LC_ALL=C strings /home/mattisdalleau/.local/share/claude/versions/2.1.119 | LC_ALL=C grep -F 'remote managed settings' | LC_ALL=C grep -oE '.{50}remote managed settings.{500}' | head -3)
   55 let M = Rt();                                           // remote: ~/.claude/remote-settings.json
   56 if (M && Object.keys(M).length > 0) {
   57   const parsed = bP().safeParse(fN(M));
   58   if (parsed.success && Object.keys(parsed.data).length > 0) Y = parsed.data;
   59 }
   60 if (!Y) Y = lNH();          // /etc/claude-code/managed-settings.json + .d
   61 if (!Y) Y = gv$();          // macOS plist
   62 if (!Y) Y = Xk8();          // WSL parent (Windows policy)
   63 if (!Y) Y = nNH();          // final fallback
   64 if (Y) q = ht(q, Y, w4H);   // merge winner into effective policy

Rt() reads ~/.claude/remote-settings.json (constant c79 = "remote-settings.json"). Any non-empty remote stub — including a single boolean unrelated to permissions/hooks — sets Y and short-circuits the chain. There is no merge between remote-pushed and endpoint-defined managed settings.

Environment Info

  • Platform: linux
  • Terminal: gnome-terminal
  • Version: 2.1.119
  • Feedback ID: 83b2b189-bde8-48f9-8de7-e61f999848c4

Errors

[]

Fixed by removing the ~/.claude/remote-settings.json

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗