Skip to content

Parent sessions can drop replies after sessions_spawn child completions and emit NO_REPLY #43547

@charlieskc

Description

@charlieskc

Summary

Executive-assistant WhatsApp turns can complete child subagent work successfully, then fail to send any parent reply. The parent session emits NO_REPLY, the gateway logs No reply from agent., and the user receives nothing even though all required child results are present in the session transcript.

Impact

  • User-facing WhatsApp thread appears stuck
  • Work is completed but silently dropped
  • Session history is preserved, but the turn never finalizes into an outbound reply
  • This breaks ad hoc standups and any parent turn that relies on sessions_spawn completion events

Repro / Evidence

Environment:

  • OpenClaw 2026.3.8
  • Gateway running via LaunchAgent on macOS
  • Executive Assistant on openai-codex/gpt-5.4

Observed live session:

  • Session key: agent:executive-assistant:whatsapp:direct:[REDACTED]
  • Session file: agents/executive-assistant/sessions/[REDACTED_SESSION_ID].jsonl

Ad hoc standup flow:

  1. Parent agent starts an ad hoc standup turn.
  2. Parent spawns two children via sessions_spawn:
    • engineer
    • reviewerops
  3. Both child runs complete successfully.
  4. Completion events are injected back into the parent session.
  5. Parent emits NO_REPLY instead of a user-facing summary.
  6. Gateway logs No reply from agent. and WhatsApp gets nothing.

Relevant transcript evidence from the parent session:

  • Parent spawned children and received accepted sessions_spawn results.
  • Parent then emitted NO_REPLY.
  • Later both child completion events arrived in the parent session.
  • After each completion event, the parent still emitted NO_REPLY instead of a final response.

Relevant gateway log evidence:

  • 2026-03-12T08:24:09.411+08:00 [ws] ⇄ res ✓ agent.wait ...
  • 2026-03-12T08:24:19.410+08:00 No reply from agent.
  • 2026-03-12T08:24:19.359+08:00 [diagnostic] lane wait exceeded: lane=session:agent:executive-assistant:whatsapp:direct:[REDACTED] waitedMs=9712 queueAhead=0

Expected

When all spawned child tasks complete successfully, the parent turn should reconcile their results and emit a normal assistant reply to the transport.

Actual

The parent suppresses output with NO_REPLY and the transport sends nothing.

Why this looks like an OpenClaw bug

This is not a transport, Node, or provider-fallback issue:

  • both children completed successfully
  • results were delivered back into the parent session
  • the parent/session orchestration failed to convert those results into a final reply

The bug appears to be in parent/subagent completion handling, likely around:

  • expected child completion tracking
  • NO_REPLY suppression logic
  • parent run finalization after child completion events

Suspected fix area

Please inspect the runtime path for:

  • sessions_spawn run mode with push-based completion
  • parent turns that are instructed to wait for child completions
  • any logic that emits NO_REPLY before all expected completions are reconciled
  • any logic that treats later child completion events as non-user-facing and never reopens/finalizes the parent turn

Suggested behavior

  • Parent should not emit NO_REPLY while it still has pending expected child completions.
  • Once all expected child completions arrive, parent should finalize normally into a transport reply.
  • If suppression occurs incorrectly, it should become an explicit error state rather than silently dropping the message.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions