Skip to content

[Bug]: System events and cron payloads appear as user messages in webchat (still broken in 2026.3.23-2) #56489

@sameerahmed1

Description

@sameerahmed1

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

  1. A cron job fires with payload.kind: "systemEvent" targeting a session
  2. The system event text (e.g. [cron:uuid] Check if benchmark finished...) is injected into the session
  3. It appears in the webchat transcript as a user message bubble — as if the user typed it
  4. Exec completion events (e.g. System: [2026-03-28 10:15:36 CDT] Exec failed (tide-gul...) :: ...) also appear as user bubbles mid-conversation
  5. The agent responds to the injected content as if the user asked it
  6. 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:

  1. Don't store systemEvent-injected content in the user-visible transcript
  2. Use a separate role (e.g. system) that renders differently or not at all in webchat
  3. Process system events out-of-band without injecting into user turns

Happy to test a fix or provide additional repro details.

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