Notifications
This page lists every notification that stream-chat and stream-chat-react-native publish, by type. stream-chat-expo publishes the same ones. Match on type to translate a notification, filter it, or show it somewhere of your own. How notifications are published and what they carry is on Publishing notifications. How the React Native components show them is on Notifications UI, and the text each type renders on Notifications text.
Types follow the pattern domain:entity:operation:result, explained in Notification types. A notification's origin.emitter names the object or component that published it.
stream-chat
Every type below is in CORE_NOTIFICATION_TYPE.
| Type | Severity | origin.emitter |
When |
|---|---|---|---|
api:attachment:upload:failed |
error | AttachmentManager |
An upload request failed. Not for an upload the user cancelled. |
validation:attachment:upload:blocked |
error | AttachmentManager |
The app's upload settings refused a file. metadata.reason says which setting. |
validation:attachment:file:missing |
error | AttachmentManager |
AttachmentManager.uploadFile() was given an attachment that has no file. |
validation:attachment:id:missing |
error | AttachmentManager |
AttachmentManager.uploadFile() was given an attachment that has no local id. |
validation:attachment:upload:in-progress |
warning | MessageComposer |
A message was sent while an upload was running, with pending uploads off. The send doesn't go out. |
validation:command:disabled |
warning | MessageComposer |
A command was used while editing a message, or a moderation command while quoting one. metadata.reason is 'editing' or 'quoted_message'. |
validation:command:not-ready |
warning | MessageComposer |
A command was sent without what it needs, such as /ban without a user. |
api:message:send:failed |
error | MessageComposer |
MessageComposer.send() failed. The message stays in the list, marked failed. |
api:message:update:failed |
error | MessageComposer |
MessageComposer.update() failed. The edit stays on the message, marked failed. |
api:poll:create:failed |
error | MessageComposer |
MessageComposer.createPoll() failed. |
api:location:create:failed |
error | MessageComposer |
MessageComposer.sendLocation() failed. |
api:message:jump:failed |
error | MessagePaginator.jumpToMessage |
Jumping to a message failed. |
api:message:jumpToLatest:failed |
error | MessagePaginator.jumpToTheLatestMessage |
Jumping to the latest message failed. |
validation:poll:castVote:limit |
info | Poll |
A vote was cast in a poll where the user has used all their votes. |
With offline support, a send or an edit that fails because the device is offline publishes api:message:send:failed or api:message:update:failed too, although it waits as a pending task and goes out after the next reconnect.
stream-chat-react-native
These are the types the React Native components publish, with the severity each one is published with. A type that ends in success is published with the severity success, and one that ends in failed with error, unless the table says otherwise. Where a type has more than one emitter, each of them publishes it.
Messages
| Type | origin.emitter |
When |
|---|---|---|
api:message:delete:success, api:message:delete:failed |
MessageActions |
The Delete Message action, after the user confirmed, deleted a message, or failed to. |
api:message:flag:success, api:message:flag:failed |
MessageActions |
The Flag Message action, after the user confirmed, flagged a message, or failed to. |
api:message:markUnread:success, api:message:markUnread:failed |
MessageActions |
The Mark as Unread action marked the channel unread from a message, or failed to. |
api:message:pin:success, api:message:pin:failed |
MessageActions |
The Pin to Conversation action pinned a message, or failed to. |
api:message:unpin:success, api:message:unpin:failed |
MessageActions |
The Unpin from Conversation action unpinned a message, or failed to. |
clipboard:message:copy:success, clipboard:message:copy:failed |
MessageActions |
The Copy Message action copied the text, or failed to. |
api:message:reactions:fetch:failed |
Reactions |
Loading the reactions of a message, for the list of who reacted, failed. |
channel:jumpToFirstUnread:failed |
Channel, UnreadMessagesNotification |
Jumping to the first unread message failed, when Channel opened at it or when the unread notification was pressed. |
Users
| Type | origin.emitter |
When |
|---|---|---|
api:user:mute:success, api:user:mute:failed |
MessageActions, UserActions, ChannelActions |
A user was muted from a message's actions or from the channel's actions, or muting failed. |
api:user:unmute:success, api:user:unmute:failed |
MessageActions, UserActions, ChannelActions |
A user was unmuted, or unmuting failed. |
api:user:block:success |
UserActions, ChannelActions |
A user was blocked. |
api:user:unblock:success |
UserActions, ChannelActions |
A user was unblocked. |
api:user:block:failed |
UserActions, ChannelActions |
Blocking or unblocking a user failed. |
Channels
| Type | origin.emitter |
When |
|---|---|---|
api:channel:pin:success |
ChannelActions |
The channel was pinned. |
api:channel:unpin:success |
ChannelActions |
The channel was unpinned. |
api:channel:pin:failed |
ChannelActions |
Pinning or unpinning the channel failed. |
api:channel:archive:success |
ChannelActions |
The channel was archived. |
api:channel:unarchive:success |
ChannelActions |
The channel was unarchived. |
api:channel:archive:failed |
ChannelActions |
Archiving or unarchiving the channel failed. |
api:channel:mute:success |
ChannelActions |
The channel was muted. |
api:channel:unmute:success |
ChannelActions |
The channel was unmuted. |
api:channel:mute:failed |
ChannelActions |
Muting or unmuting the channel failed. |
api:channel:leave:success, api:channel:leave:failed |
ChannelActions |
The user left the channel, or leaving failed. |
api:channel:delete:success, api:channel:delete:failed |
ChannelActions |
The channel was deleted, or deleting failed. |
api:channel:update-name:success, api:channel:update-name:failed |
ChannelActions |
The channel's name was saved, or saving it failed. |
api:channel:update-image:success, api:channel:update-image:failed |
ChannelActions |
The channel's image was saved, or saving it failed. |
api:channel:add-members:success, api:channel:add-members:failed |
ChannelActions |
Members were added to the channel, or adding them failed. |
api:channel:remove-members:success, api:channel:remove-members:failed |
ChannelActions |
Members were removed from the channel, or removing them failed. |
The ChannelActions emitter is the useChannelActions() hook, which the swipe actions of a channel row and the channel details screens call. Channel preview hooks lists its handlers.
Channel details lists
| Type | origin.emitter |
When |
|---|---|---|
api:channel:query-members:failed |
ChannelMemberList |
Loading the members of the channel details list failed. |
api:channel:query-users:failed |
AddChannelMembers |
Loading the users to add to the channel failed. |
api:channel:query-media:failed |
ChannelMediaList |
Loading the shared photos and videos failed. |
api:channel:query-file-attachments:failed |
ChannelFileAttachmentList |
Loading the shared files failed. |
api:channel:query-pinned-messages:failed |
ChannelPinnedMessageList |
Loading the pinned messages failed. |
Polls and audio
| Type | origin.emitter |
When |
|---|---|---|
api:poll:end:success, api:poll:end:failed |
PollActions |
A poll was ended, or ending it failed. |
validation:audio:recording:hold-required |
AudioRecordingButton |
The user tapped the record button instead of holding it. Severity info. |
permission:audio:recording:blocked |
AudioRecordingButton |
The device refused microphone access to start a recording. Severity warning, with no duration and an Open Settings action. |
audioRecording:cancel:success |
AudioRecorder |
The user deleted a voice recording. Severity info. |
browser:audio:playback:error |
AudioPlayer |
Playing a voice recording or audio attachment failed, its format is not supported, or the player can't seek in it. Severity error. |
Panel tags
A component publishes its notifications through useNotificationApi().addNotification(), which tags them for the target of the nearest NotificationTargetProvider. Channel provides the panel channel, Thread the panel thread, ChannelList the panel channel-list, ThreadList the panel thread-list, and the channel details screens the panel channel-details. The target is a tag such as target:channel, with the host as a second part, such as target:channel:channel:messaging:general.
While a notification list is mounted, a notification that is added without a target tag gets one: for the channel or thread of the composer in its origin.context, else for the target of the action that is running, else for the latest mounted target. This covers the notifications stream-chat publishes. The vote toggle of a poll runs its request as such an action, so validation:poll:castVote:limit shows in the panel the poll sits in.
None of the types on this page carries the tag system. The SDK publishes no system notification. Notifications UI explains where each tag shows.