Skip to content

Sub-agent announcements: wrong session, 30min+ delay, duplicate deliveries #22287

@nikod-kindo

Description

@nikod-kindo

Supersedes #22273 with more precise findings after investigation.

Summary

Sub-agent announcements from sessions_spawn have three compounding bugs:

  1. Wrong session — delivers to the DM channel session instead of the session that spawned the sub-agent
  2. ~30 minute delay — first delivery arrives ~33 min after sub-agent completion
  3. 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

  1. Announce should deliver to the requester session (agent:main:main) that called sessions_spawn
  2. Delivery should happen within seconds of sub-agent completion
  3. 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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions