claude-code - 💡(How to fix) Fix Concurrent subagent dispatch: parent's permission state does not propagate to parallel subagents

Official PRs (…)
ON THIS PAGE

Recommended Tools

×6

Utilities matched from this issue’s tags and category — try them while you read without losing context.

GitHub issue graph ai analysis

Paste a GitHub issue URL. We fetch that issue, discover linked issues from bodies/comments/timeline, collect linked pull requests, and produce a structured English report.

The report is written in English Markdown for sharing and archival.

Helpful · Quick feedback

Loading…

When a parent dispatches 2+ subagents in parallel, the subagents behave asymmetrically even when given identical permission surfaces. One may succeed while another re-prompts or fails, or they fail with different error text. A single subagent dispatched serially with the same permission surface works correctly.

This is the umbrella bug — likely F6, F7, and F9 are all symptoms of this deeper parent→child permission-state handoff gap.

Error Message

When a parent dispatches 2+ subagents in parallel, the subagents behave asymmetrically even when given identical permission surfaces. One may succeed while another re-prompts or fails, or they fail with different error text. A single subagent dispatched serially with the same permission surface works correctly.

Root Cause

When a parent dispatches 2+ subagents in parallel, the subagents behave asymmetrically even when given identical permission surfaces. One may succeed while another re-prompts or fails, or they fail with different error text. A single subagent dispatched serially with the same permission surface works correctly.

This is the umbrella bug — likely F6, F7, and F9 are all symptoms of this deeper parent→child permission-state handoff gap.

Fix Action

Workaround

Serial dispatch.

RAW_BUFFERClick to expand / collapse

Summary

When a parent dispatches 2+ subagents in parallel, the subagents behave asymmetrically even when given identical permission surfaces. One may succeed while another re-prompts or fails, or they fail with different error text. A single subagent dispatched serially with the same permission surface works correctly.

This is the umbrella bug — likely F6, F7, and F9 are all symptoms of this deeper parent→child permission-state handoff gap.

Setup

  • Parent session with a complete permission surface declared in settings.json + settings.local.json
  • Parent dispatches 2+ subagents simultaneously (via multiple Agent tool calls in a single message)
  • Each subagent is given an identical prompt + identical permission requirements

Expected

All subagents see the same permission state and behave identically.

Actual

Subagents get different permission snapshots depending on dispatch timing. Observed in our wave-2 stress test: 5 concurrent agents, all with identical perm surfaces, all 5 failed with per-agent denials — but a single serial dispatch of the same task succeeded.

Reproducer

https://github.com/Regevba/FitTracker2/tree/main/docs/superpowers/plans/f6-f9-reproducer § F8

Why we think this is a runtime bug

No consumer-side config controls the order in which the runtime serializes permission state into a child-dispatch payload. The asymmetry across otherwise-identical concurrent children is only explainable by a race condition in the snapshot mechanism.

Impact

Parallel dispatch is effectively unusable. Our remediation program (30+ PRs) ran entirely serial after wave-2 aborted. This is the single biggest performance regression we have open.

Workaround

Serial dispatch.

Related

F6, F7, F9 likely specializations of this bug.

extent analysis

TL;DR

The most likely fix is to implement a synchronization mechanism to ensure that all subagents receive the same permission state when dispatched in parallel.

Guidance

  • Investigate the permission state snapshot mechanism to identify the root cause of the race condition, focusing on how the runtime serializes permission state into a child-dispatch payload.
  • Consider implementing a locking or synchronization mechanism to ensure that all subagents receive the same permission state when dispatched concurrently.
  • Review the settings.json and settings.local.json files to ensure that the permission surfaces are correctly declared and consistent across all subagents.
  • Test the reproducer provided in the issue to verify the behavior and identify potential fixes.

Example

No code snippet is provided as the issue does not contain specific code references.

Notes

The issue is likely related to a runtime bug, and the provided reproducer can be used to test and verify potential fixes. The workaround of using serial dispatch is currently the only reliable solution.

Recommendation

Apply a workaround by using serial dispatch until a permanent fix can be implemented, as parallel dispatch is currently unusable due to the permission state inconsistencies.

Vote matrix · Quick signals

Works
Did the solution work? Tap to confirm.
Easy Fix
Was it a quick fix?
Time Saver
Did it save you time?
Blocking
Was it severely blocking?
Common Issue
Are others likely hitting this too?
Flaky / Intermittent
Is it intermittent?
Verified / Reproducible
Can you reproduce it reliably?
Loading…

Still need to ship something?

×6

Another batch ranked right after the header list — different links, same matching logic.

Back to top recommendations

TRENDING

claude-code - 💡(How to fix) Fix Concurrent subagent dispatch: parent's permission state does not propagate to parallel subagents