System Message

A system message is generated by backend events (for example, banning or muting a user). The SDK renders them automatically in VirtualizedMessageList and MessageList. This guide shows how to override the default component.

Best Practices

  • Keep system messages visually distinct but not disruptive.
  • Preserve the message text and timestamp for audit clarity.
  • Avoid exposing sensitive actor details unless your policy allows it.
  • Use MessageSystem override for layout changes, not just styling.
  • Test system messages for moderation events and permission changes.

Default System Message Component

The default system message component is EventComponent. It renders when message.type === "system".

Default System Message

Custom System Message Component

Our custom component shows the message text, date, and actor (user who triggered the event). Register it with WithComponents so the nested MessageList or VirtualizedMessageList can read it from ComponentContext.

Note:

To see your component in action, try muting a user with the /mute command followed by an @mention. These commands must be enabled in the Dashboard.

Custom System Message
Add Chat to my app: getstream.io/SKILL.md

The fastest way to build with Stream. Start a new project or improve an existing one. Full CLI and documentation integration out of the box.


Ask your agent:

/stream Build me a Social App with Feeds and Moderation.
/stream Any livestream calls running?
/stream Chat React v14: <Your Question>