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:
- Parent agent starts an ad hoc standup turn.
- Parent spawns two children via
sessions_spawn:
- Both child runs complete successfully.
- Completion events are injected back into the parent session.
- Parent emits
NO_REPLY instead of a user-facing summary.
- 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.
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 logsNo reply from agent., and the user receives nothing even though all required child results are present in the session transcript.Impact
sessions_spawncompletion eventsRepro / Evidence
Environment:
2026.3.8openai-codex/gpt-5.4Observed live session:
agent:executive-assistant:whatsapp:direct:[REDACTED]agents/executive-assistant/sessions/[REDACTED_SESSION_ID].jsonlAd hoc standup flow:
sessions_spawn:NO_REPLYinstead of a user-facing summary.No reply from agent.and WhatsApp gets nothing.Relevant transcript evidence from the parent session:
sessions_spawnresults.NO_REPLY.NO_REPLYinstead 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=0Expected
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_REPLYand the transport sends nothing.Why this looks like an OpenClaw bug
This is not a transport, Node, or provider-fallback issue:
The bug appears to be in parent/subagent completion handling, likely around:
NO_REPLYsuppression logicSuspected fix area
Please inspect the runtime path for:
sessions_spawnrun mode with push-based completionNO_REPLYbefore all expected completions are reconciledSuggested behavior
NO_REPLYwhile it still has pending expected child completions.