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_match for 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 called sessions_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)
Supersedes #22273 with more precise findings after investigation.
Summary
Sub-agent announcements from
sessions_spawnhave three compounding bugs:Timeline (observed)
agent:main:main, sessionId0f53fc38)updatedAt: 1771629240102)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):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
route.no_matchfor all events. First misdelivery occurred before the adapter fix.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
agent:main:main) that calledsessions_spawnEnvironment
sessions_spawn(deep research task)