[BUG] Parallel tool calls intermittently ignore permissions.allow — race condition in auto-approval
Resolved 💬 3 comments Opened Mar 16, 2026 by milnet01 Closed Mar 19, 2026
Environment
- Claude Code CLI (terminal)
- Operating System: openSUSE Tumbleweed (Linux 6.19.7)
- Terminal: Konsole
- Platform: Linux x86_64
Bug Description
When multiple identical tool calls are made in parallel (e.g., 4 Glob calls), auto-approval from settings.json is applied inconsistently — some calls auto-approve while others prompt for permission, despite all matching the same allow rule.
Steps to Reproduce
- Add
"Glob"(globally allowed, no path restriction) to~/.claude/settings.json→permissions.allow - Restart Claude Code
- Ask Claude to perform a task that triggers multiple parallel
Globcalls to different subdirectories under the same parent path
Example: 4 parallel Glob calls to:
/mnt/Storage/Scripts/Linux/SystemManager/**/*.desktop/mnt/Storage/Scripts/Linux/Create_3D_Boxart/**/*.desktop/mnt/Storage/Scripts/Linux/Rolodex/**/*.desktop/mnt/Storage/Scripts/Linux/YT-DLP_FrontEnd/**/*.desktop
Expected Behavior
All 4 Glob calls should auto-approve without prompting, since "Glob" is in the allow list with no path restriction.
Actual Behavior
3 out of 4 calls auto-approved. 1 call (SystemManager) prompted for manual permission. The prompted call was identical in structure to the others — same tool, same pattern, same parent path, same allow rule.
Additional Context
- This appears to be a race condition in the permission-checking logic when multiple tool calls are dispatched in parallel.
- The behavior is non-deterministic — the specific call that gets prompted may vary.
- Possibly related to #6850 (settings.json allow rules not being respected), but distinct in that it's intermittent rather than consistent, and only manifests with parallel tool calls.
Settings
{
"permissions": {
"allow": [
"Read",
"Write",
"Edit",
"Glob",
"Grep",
...
]
}
}This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗