Skip to content

[Bug] Subagent announce leaks raw tool output to Telegram and duplicates parent progress reply #79986

@dudaefj

Description

@dudaefj

Summary

On OpenClaw 2026.5.7 running on Linux, a Telegram DM parent session spawned three mode=run subagents. After a simple user follow-up (sim, pode seguir), the parent sent the same progress acknowledgement twice and then the Telegram chat received large raw code/tool-output blocks from subagent completion handling, including paths like:

/root/openclaw/src/gateway/protocol/schema/protocol-schemas.ts:181:  PluginControlUiDescriptorSchema,

This looks like a regression/variant of stale subagent announce output leaking tool results into the requester session/channel.

Environment

  • OpenClaw: 2026.5.7
  • Host: Linux x64, Node 22.22.0
  • Channel: Telegram DM
  • Parent session key: agent:main:telegram:default:direct:378478304
  • User message timestamp: 2026-05-09T21:29:16Z
  • User text: sim, pode seguir

What happened

Parent transcript /root/.openclaw/agents/main/sessions/71f5753f-d183-4748-a03b-66fdaf2c07f4.jsonl:

line 545 user: sim, pode seguir
line 549 assistant: Vou seguir com o **MC4 Discovery** agora. Vou dividir em frentes paralelas...
line 553 sessions_spawn -> agent:main:subagent:d4147361-740d-43f7-a42f-1ec78e2ab818
line 555 sessions_spawn -> agent:main:subagent:49041306-beb7-4afb-9cd8-9803f7fe8e95
line 557 sessions_spawn -> agent:main:subagent:66103870-5db8-4df7-8178-354c87a99b24

The user observed the progress message twice in Telegram:

Vou seguir com o MC4 Discovery agora. Vou dividir em frentes paralelas e exigir saída prática: APIs reais, arquivos/funções, lacunas e recomendação de desenho.

Then large raw tool/code output appeared in chat. The raw leaked text exists in the subagent transcript, e.g. /root/.openclaw/agents/main/sessions/4acca8c5-cef0-4390-b33f-fb977d4ca104.jsonl:

line 46 toolResult exec:
/root/openclaw/src/gateway/protocol/schema/protocol-schemas.ts:181:  PluginControlUiDescriptorSchema,
/root/openclaw/src/gateway/protocol/schema/protocol-schemas.ts:411:  PluginControlUiDescriptor: PluginControlUiDescriptorSchema,
/root/openclaw/src/gateway/protocol/schema/types.ts:137:export type PluginControlUiDescriptor = SchemaType<"PluginControlUiDescriptor">;
/root/openclaw/src/gateway/protocol/schema/plugins.ts:6:export const PluginControlUiDescriptorSchema = Type.Object(
...

The parent then received internal completion events as user messages:

[Inter-session message] sourceSession=agent:main:subagent:66103870-5db8-4df7-8178-354c87a99b24 sourceChannel=webchat sourceTool=subagent_announce isUser=false
[Internal task completion event]
source: subagent
...

Related diagnostics from gateway logs

Around the same window the gateway also reported event-loop starvation and context overflows in the child runs:

[diagnostic] liveness warning: reasons=event_loop_delay,event_loop_utilization,cpu ... active=3 ...
[fetch-timeout] ... likely event-loop starvation ... Telegram getMe
[context-overflow-diag] sessionKey=agent:main:subagent:49041306-beb7-4afb-9cd8-9803f7fe8e95 ... Context overflow: estimated context size exceeds safe threshold during tool loop.
[context-overflow-diag] sessionKey=agent:main:subagent:66103870-5db8-4df7-8178-354c87a99b24 ... Context overflow: estimated context size exceeds safe threshold during tool loop.

Expected behavior

  • Parent progress acknowledgement should not be delivered twice for one Telegram user message.
  • Subagent completion announce should deliver a concise final child result or a controlled failure summary.
  • Raw tool results/code dumps from child transcripts must not be routed to Telegram.
  • Internal completion event envelopes should remain internal to the parent session and should not cause user-visible channel spam.

Actual behavior

  • Duplicate parent progress acknowledgement was visible in Telegram.
  • Raw child exec/read tool outputs were surfaced in the Telegram chat.
  • The leaked content was large enough to look like source-code dumps, not an intentional final report.

Notes

This appears related to the existing subagent announce/tool-output leak class, but reproduced on 2026.5.7 with sessions_spawn(mode="run"), Telegram DM, child context overflows, and event-loop delay. Existing related issues include #74073 and #25592; this report adds a fresh 2026.5.7 Telegram/subagent reproduction with concrete session keys and timestamps.

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