Quick Reference for AI Agents & Developers
- Leave group:
CometChat.leaveGroup(GUID:onSuccess:onError:) - Note: Group owner cannot leave — must transfer ownership first
- Related: Join Group · Transfer Ownership · Groups Overview
Leave a Group
In order to stop receiving updates and messages for any particular joined group, you will have to leave the group using theleaveGroup() method.
Leave Group Parameters
| Parameter | Type | Description |
|---|---|---|
| GUID | String | Unique group identifier to leave |
- Swift
- Objective C
Sample Payload - Leave Group
Sample Payload - Leave Group
Request Parameters:
Success Response:
After Leaving Group:
Error Response (CometChatException):
| Parameter | Type | Description |
|---|---|---|
| GUID | String | Unique group identifier to leave. Example: "cometchat-guid-1" |
| Parameter | Type | Description |
|---|---|---|
| response | String | Success message. Example: "Group left successfully." |
| Effect | Description |
|---|---|
| Messages | User will NOT receive messages from this group |
| Member List | User will NOT appear in group member list |
| hasJoined | Will be false if group is fetched again |
| Rejoin | User can rejoin if group is public or password-protected |
| Parameter | Type | Description |
|---|---|---|
| errorCode | String | Unique error code. Example: "ERR_GROUP_NOT_JOINED" |
| errorDescription | String | Human-readable error message. Example: "The user with UID cometchat-uid-2 is not a member of the group with GUID cometchat-guid-1. Please join the group to access it." |
Sample Payload - Leave Group (Owner Error)
Sample Payload - Leave Group (Owner Error)
Request Parameters:
Error Response:
| Parameter | Type | Description |
|---|---|---|
| GUID | String | Unique group identifier to leave. Example: "cometchat-guid-1" |
| Parameter | Type | Description |
|---|---|---|
| errorCode | String | Unique error code. Example: "ERR_OWNER_CANNOT_LEAVE" |
| errorDescription | String | Human-readable error message. Example: "Group owner cannot leave - must transfer ownership first" |
Real-time Leave Group Event
In other words, as a member of a group, how do I know if someone has left it? If a user leaves any group, the members of the group receive a real-time event in theonGroupMemberLeft() method of the CometChatGroupDelegate. In order to receive user Events, you must add protocol conformance CometChatGroupDelegate as shown below:
- Swift
- Objective C
Sample Payload - onGroupMemberLeft Event
Sample Payload - onGroupMemberLeft Event
Event Trigger: Received via
leftGroup (Group Object):
CometChatGroupDelegate.onGroupMemberLeft(action:leftUser:leftGroup:)ActionMessage Object:leftUser (User Object):
| Parameter | Type | Description |
|---|---|---|
| uid | String? | Unique identifier of the user who left. Example: "user123" |
| name | String? | Display name of the user. Example: "John Doe" |
| avatar | String? | URL to the user’s avatar image. Example: "https://example.com/avatar.png" |
| status | UserStatus | Current online status. Example: .online |
| Parameter | Type | Description |
|---|---|---|
| guid | String | Unique group identifier. Example: "group123" |
| name | String? | Group display name. Example: "My Group" |
| membersCount | Int | Updated member count (decremented). Example: 14 |
viewDidLoad() as CometChat.groupdelegate = self
Missed Group Member Left Events
In other words, as a member of a group, how do I know if someone has left it when my app is not running? When you retrieve the list of previous messages if a member has left any group that the logged-in user is a member of, the list of messages will contain anAction message. An Action message is a sub-class of BaseMessage class.
For the group member left event, in the Action object received, the following fields can help you get the relevant information:
| Field | Value | Description |
|---|---|---|
| action | "left" | Action type |
| actionBy | User object | User who left the group |
| actionFor | Group object | Group the user left |
CometChatGroupDelegate
Listen for real-time group events by conforming toCometChatGroupDelegate.
Delegate Methods
| Method | Parameters | Description |
|---|---|---|
onMemberAddedToGroup | action, addedBy, addedUser, addedTo | Member added |
onGroupMemberLeft | action, leftUser, leftGroup | Member left |
onGroupMemberJoined | action, joinedUser, joinedGroup | Member joined |
onGroupMemberKicked | action, kickedUser, kickedBy, kickedFrom | Member kicked |
onGroupMemberBanned | action, bannedUser, bannedBy, bannedFrom | Member banned |
onGroupMemberUnbanned | action, unbannedUser, unbannedBy, unbannedFrom | Member unbanned |
onGroupMemberScopeChanged | action, updatedUser, scopeChangedTo, scopeChangedFrom, group | Scope changed |
onOwnershipChanged | group, newOwner | Owner changed |
Sample Payload - Start Listening for Group Events
Sample Payload - Start Listening for Group Events
Setup Configuration:
Listening Status:
Events Being Monitored:
| Parameter | Type | Description |
|---|---|---|
| groupdelegate | CometChatGroupDelegate | Reference to the delegate object. Example: self |
| Parameter | Type | Description |
|---|---|---|
| status | String | Current listening state. Example: "Listening for group events" |
| Event | Description |
|---|---|
| onMemberAddedToGroup | When member is added |
| onGroupMemberLeft | When member leaves |
| onGroupMemberJoined | When member joins |
| onGroupMemberKicked | When member is kicked |
| onGroupMemberBanned | When member is banned |
| onGroupMemberUnbanned | When member is unbanned |
| onGroupMemberScopeChanged | When scope changes |
| onOwnershipChanged | When ownership transfers |
Sample Payload - Stop Listening for Group Events
Sample Payload - Stop Listening for Group Events
Cleanup Configuration:
Listening Status:
| Parameter | Type | Description |
|---|---|---|
| groupdelegate | CometChatGroupDelegate? | Set to nil to stop receiving events. Example: nil |
| Parameter | Type | Description |
|---|---|---|
| status | String | Current listening state. Example: "No longer listening for group events" |
Common Error Codes
| Error Code | Description | Resolution |
|---|---|---|
| ERR_NOT_LOGGED_IN | User is not logged in | Login first using CometChat.login() |
| ERR_GUID_NOT_FOUND | Group does not exist | Verify the GUID is correct |
| ERR_GROUP_NOT_JOINED | Not a member of this group | User must be a member to leave |
| ERR_OWNER_CANNOT_LEAVE | Owner cannot leave group | Transfer ownership first using transferGroupOwnership() |