Summary
System-injected events (cron job payloads, exec completion notifications) appear in the webchat UI as messages sent by the user ("You"), derailing conversations and polluting chat history. This was previously reported in #20824 and closed as stale without a fix.
Environment
- OpenClaw version: 2026.3.23-2 (7ffe7e4)
- Platform: macOS (gateway), iOS (webchat via Safari)
- Channels affected: webchat (control UI)
What happens
- A cron job fires with
payload.kind: "systemEvent" targeting a session
- The system event text (e.g.
[cron:uuid] Check if benchmark finished...) is injected into the session
- It appears in the webchat transcript as a user message bubble — as if the user typed it
- Exec completion events (e.g.
System: [2026-03-28 10:15:36 CDT] Exec failed (tide-gul...) :: ...) also appear as user bubbles mid-conversation
- The agent responds to the injected content as if the user asked it
- The user's chat history now contains messages they never sent
Expected behavior
System events, cron payloads, and internal exec notifications should be invisible in the webchat UI. Only actual user-typed messages should appear as user bubbles. The chat transcript should reflect what the user actually said.
Relationship to #20824
This is a continuation of #20824 which was closed as stale in 2024 without a fix. The issue reproduces cleanly on the current release (2026.3.23-2), more than 2 years later.
The original issue identified three possible fixes:
- Don't store systemEvent-injected content in the user-visible transcript
- Use a separate role (e.g.
system) that renders differently or not at all in webchat
- Process system events out-of-band without injecting into user turns
Happy to test a fix or provide additional repro details.
Summary
System-injected events (cron job payloads, exec completion notifications) appear in the webchat UI as messages sent by the user ("You"), derailing conversations and polluting chat history. This was previously reported in #20824 and closed as stale without a fix.
Environment
What happens
payload.kind: "systemEvent"targeting a session[cron:uuid] Check if benchmark finished...) is injected into the sessionSystem: [2026-03-28 10:15:36 CDT] Exec failed (tide-gul...) :: ...) also appear as user bubbles mid-conversationExpected behavior
System events, cron payloads, and internal exec notifications should be invisible in the webchat UI. Only actual user-typed messages should appear as user bubbles. The chat transcript should reflect what the user actually said.
Relationship to #20824
This is a continuation of #20824 which was closed as stale in 2024 without a fix. The issue reproduces cleanly on the current release (2026.3.23-2), more than 2 years later.
The original issue identified three possible fixes:
system) that renders differently or not at all in webchatHappy to test a fix or provide additional repro details.