Moderation

Stream Chat supports moderation actions like flagging, muting, banning, and shadow banning. Low-level client tools are documented here.

You can also moderate flagged messages and users in the moderation dashboard.

Best Practices

  • Align dashboard moderation actions with your in-app UX expectations.
  • Surface clear feedback when a message is bounced or blocked.
  • Treat message.moderation_details as the source of truth for moderation state.
  • Keep resend actions gated to prevent repeated policy violations.
  • Customize MessageBounce only if you keep the same moderation semantics.

Moderation Categories

For each channel type, you can enable AI moderation, consisting of 4 moderation categories:

  • Semantic Filters
  • Commercial Spam
  • Platform Circumvention
  • Blocklists

Dashboard moderation categories

For each category, configure the action applied when a message matches:

The available actions are:

  • Flag
  • Block
  • Bounce
  • Bounce then flag
  • Bounce then block

React Native SDK Handling

In the React Native SDK, check message.moderation_details. It’s undefined for regular messages.

If moderation blocks a message, message.type is error and the text contains Message was blocked by moderation policies.

If moderation bounces a message, message.type is error and moderation_details is defined.

UI Components handling

The SDK handles bounced messages by default and shows a visual indicator.

Bounced message

Press/long-press a message to access default actions like edit, delete, and resend.

Bounced message actions

If you resend a bounced message:

  • With “bounce then flag”, it’s flagged after the second send.
  • With “bounce then block”, it’s blocked after the second send.

You can customize bounced message actions by passing a custom MessageBounce to Channel.