-
-
Notifications
You must be signed in to change notification settings - Fork 52.7k
Description
Supersedes #22273 with more precise findings after investigation.
Summary
Sub-agent announcements from sessions_spawn have three compounding bugs:
- Wrong session — delivers to the DM channel session instead of the session that spawned the sub-agent
- ~30 minute delay — first delivery arrives ~33 min after sub-agent completion
- Duplicate deliveries — same announcement re-delivered on subsequent drain cycles (no dedup)
Timeline (observed)
| Time (PST) | Event |
|---|---|
| 14:54 | Sub-agent spawned from main session (agent:main:main, sessionId 0f53fc38) |
| 15:14 | Sub-agent completes (updatedAt: 1771629240102) |
| 15:47 | First delivery — appears as top-level DM (no thread), 33 min late |
| 16:12 | Second delivery — duplicate, same content, 58 min after completion |
Root Cause Analysis
Wrong session
The main session (agent:main:main / 0f53fc38) spawned the sub-agent. The sub-agent's spawn response confirms:
{"childSessionKey": "agent:main:subagent:19a4b8f8-...", "note": "auto-announces on completion"}But the announcement was never delivered to the main session. Verified by reading the full session transcript — no sub-agent result appears after the spawn.
Instead, it was delivered to agent:main:slack:channel:d0afqa1ndff — a separate DM channel session that only contains outbound messages. This session has no thread context, so messages land as top-level DMs.
Evidence from the DM channel session transcript (71b1025b):
- Line 2: Grafana research results (same bug, earlier today)
- Line 3: Ramp research results (first delivery, 15:47)
- Line 4: Ramp research results (duplicate delivery, 16:12)
Delay
The sub-agent completed at 15:14 but first delivery was at 15:47 (33 min). The announce queue appears to drain on a long interval rather than immediately on sub-agent completion.
Duplicate deliveries
The announce queue is not marking items as delivered. Each drain cycle re-sends the same announcement. Two identical Ramp research messages were delivered 25 minutes apart.
Ruled Out
- Not OrgLoop/agentctl — OrgLoop's agentctl source couldn't see any OpenClaw sessions (adapter was broken, now fixed separately). OrgLoop logs show
route.no_matchfor all events. First misdelivery occurred before the adapter fix. - Not manual
message send— no tool call in any session transcript corresponds to these deliveries. The DM channel session only contains assistant messages with no preceding user/tool context.
Expected Behavior
- Announce should deliver to the requester session (
agent:main:main) that calledsessions_spawn - Delivery should happen within seconds of sub-agent completion
- Delivered announcements should be marked as delivered and not re-sent
Environment
- OpenClaw 2026.2.19 (2026.2.17 gateway)
- macOS arm64, Node 22.22.0
- Channel: Slack (socket mode)
- Spawned from main session via
sessions_spawn(deep research task)