/code-review orchestrator stalls ~1h: subagent results misrouted to a different local session, parent never woken

Status Open
Reported on v2.1.226
Maintainer reply None cached
Activity 0 comments · opened Aug 10, 2026

Summary

The forked /code-review skill agent spawns finder/verifier subagents and pauses to await
their results. In two runs today, the subagents' completion messages were delivered to a
DIFFERENT local session (one that had earlier sent the orchestrator a message), so the
orchestrator was never re-invoked. It sat idle ~65–69 minutes each time until manually
resumed with a follow-up message, then completed normally.

Environment

  • Claude Code CLI 2.1.226, macOS (darwin 25.5.0)
  • /code-review invoked in a normal interactive session (forked skill agent)
  • A second local session in the same project was monitoring the review and had sent the

orchestrator at least one cross-session message ("consolidate and report now") in an
earlier stall

Evidence (session transcripts, timestamps UTC)

Incident 2 (the diagnostic one): monitoring session 76194c2a-… received EIGHT
<agent-message from="finder-…"> payloads at 12:57:31 — raw candidate lists from
finder-A/B/C/D/E/reuse/efficiency/altitude — which belonged to the review orchestrator.
The monitoring session itself noted: "Finder-B's raw candidates landed here (misrouted)"
and later "Routing bug was the real delay: the orchestrator asked its 10 finders …".
The orchestrator meanwhile showed a ~65-minute event gap (paused 14:39 local, all 10
finders done by 14:48, no wake-up until manual resume ~15:53).

Incident 1, same day, same shape: verifier + gap-sweeper children all finished 14:05
local; parent idle 69 minutes; resumed manually and completed.

Suspected mechanism

Cross-session reply routing resolves the recipient by name with "latest wins". After the
monitoring session messaged the orchestrator, the children's replies to their parent
resolved to the monitoring session instead of the spawning session. The parent's wake-up
therefore never fired.

Expected

A subagent's result/completion notification is delivered to the session that spawned it,
regardless of what other sessions have exchanged messages with that parent; the parent is
re-invoked on delivery.

Workaround

Manually message the stalled orchestrator ("consolidate and report now") — it resumes and
completes correctly, confirming the children's work was done and only the delivery went
astray.

View original on GitHub ↗