[Bug] Project settings (.claude/settings.json) not loaded, only user settings applied
Resolved 💬 3 comments Opened Jan 19, 2026 by marcstraube Closed Jan 19, 2026
Bug Description
Bug Report: Project settings not loaded
URL: https://github.com/anthropics/claude-code/issues/new
Title: Project settings (.claude/settings.json) not loaded - only user settings applied
---
Bug Description
Claude Code 2.0.67 detects project-level settings files but does not apply their permissions or hooks. Only user-level settings from ~/.claude/settings.json are loaded.
Environment
- Claude Code Version: 2.0.67
- OS: Linux 6.12.66-1-lts (Arch Linux)
- Terminal: PHPStorm integrated terminal + standalone terminal (both affected)
Steps to Reproduce
- Create project settings files:
.claude/settings.json(project-level, committed).claude/settings.local.json(local overrides, gitignored)
- Add permissions and hooks to both files (valid JSON, verified with
jq)
- Start Claude Code in the project directory
- Run
/permissionscommand
Expected Behavior
Permissions from all three files should be merged according to documented precedence:
- Local project settings (
.claude/settings.local.json) - highest - Shared project settings (
.claude/settings.json) - User settings (
~/.claude/settings.json) - lowest
Actual Behavior
Only user settings are applied. Debug log shows:
[DEBUG] Watching for changes in setting files /home/user/.claude/settings.json, /project/.claude/settings.json, /project/.claude/settings.local.json...
[DEBUG] Applying permission update: Adding 3 allow rule(s) to destination 'userSettings': ["Bash(ls:*)","Bash(cat:*)","Bash(find:*)"]
[DEBUG] Found 0 hook matchers in settings
Key observations:
- Claude Code watches all three settings files
- Only userSettings permissions are applied (3 rules from
~/.claude/settings.json) - No projectSettings or localSettings permissions are applied
- Hooks are not loaded despite being defined in project settings files
/permissionsonly shows the 3 rules from user settings
Files Verified
Both project settings files:
- Exist in correct location (
.claude/directory) - Are valid JSON (verified with
jq . filename) - Are readable (correct file permissions)
- Contain
permissions.allowarrays andhooksobjects
Workaround
Moving all permissions to ~/.claude/settings.json works, but defeats the purpose of project-specific settings.
Impact
- Cannot use project-specific permissions (security concern - over-permissive global settings required)
- Cannot use project-specific hooks
- Team cannot share permissions via committed
.claude/settings.json
Environment Info
- Platform: linux
- Terminal: pycharm
- Version: 2.0.67
- Feedback ID: 2c28d645-3b53-4dae-b9ac-fb6fc7bd4ae7
Errors
[{"error":"Error\n at wO (/$bunfs/root/claude:58:1143)\n at <anonymous> (/$bunfs/root/claude:59:10080)\n at emit (node:events:92:22)\n at endReadableNT (internal:streams/readable:862:50)\n at processTicksAndRejections (native:7:39)\n at request (/$bunfs/root/claude:61:2147)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-01-19T19:49:17.757Z"},{"error":"Error\n at wO (/$bunfs/root/claude:58:1143)\n at <anonymous> (/$bunfs/root/claude:59:10080)\n at emit (node:events:92:22)\n at endReadableNT (internal:streams/readable:862:50)\n at processTicksAndRejections (native:7:39)\n at request (/$bunfs/root/claude:61:2147)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-01-19T19:49:35.127Z"},{"error":"Error\n at wO (/$bunfs/root/claude:58:1143)\n at <anonymous> (/$bunfs/root/claude:59:10080)\n at emit (node:events:92:22)\n at endReadableNT (internal:streams/readable:862:50)\n at processTicksAndRejections (native:7:39)\n at request (/$bunfs/root/claude:61:2147)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-01-19T19:49:51.184Z"},{"error":"Error\n at wO (/$bunfs/root/claude:58:1143)\n at <anonymous> (/$bunfs/root/claude:59:10080)\n at emit (node:events:92:22)\n at endReadableNT (internal:streams/readable:862:50)\n at processTicksAndRejections (native:7:39)\n at request (/$bunfs/root/claude:61:2147)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-01-19T19:50:34.532Z"},{"error":"Error\n at wO (/$bunfs/root/claude:58:1143)\n at <anonymous> (/$bunfs/root/claude:59:10080)\n at emit (node:events:92:22)\n at endReadableNT (internal:streams/readable:862:50)\n at processTicksAndRejections (native:7:39)\n at request (/$bunfs/root/claude:61:2147)\n at processTicksAndRejections (native:7:39)","timestamp":"2026-01-19T19:50:53.869Z"},{"error":"Error\n at wO (/$bunfs/root/claude:58:1143)\n at <anonymous> (/$bunfs/root/claude:59:10080)\n at emit (node:events:92:22)\n at endReadableNT (internal:streams/readable:862:50)\n at processTicksAndRejections (native:7:39)\n
Note: Error logs were truncated.
This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗