Skip to main content
Quick Reference for AI Agents & Developers

Leave a Group

In order to stop receiving updates and messages for any particular joined group, you will have to leave the group using the leaveGroup() method.

Leave Group Parameters

ParameterTypeDescription
GUIDStringUnique group identifier to leave
let guid = "cometchat-guid-11"

CometChat.leaveGroup(GUID: guid, onSuccess: { (response) in
    print("Left group successfully.")
}, onError: { (error) in
    print("Group leaving failed with error:" + error!.errorDescription)
})
Request Parameters:
ParameterTypeDescription
GUIDStringUnique group identifier to leave. Example: "cometchat-guid-1"
Success Response:
ParameterTypeDescription
responseStringSuccess message. Example: "Group left successfully."
After Leaving Group:
EffectDescription
MessagesUser will NOT receive messages from this group
Member ListUser will NOT appear in group member list
hasJoinedWill be false if group is fetched again
RejoinUser can rejoin if group is public or password-protected
Error Response (CometChatException):
ParameterTypeDescription
errorCodeStringUnique error code. Example: "ERR_GROUP_NOT_JOINED"
errorDescriptionStringHuman-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."
Request Parameters:
ParameterTypeDescription
GUIDStringUnique group identifier to leave. Example: "cometchat-guid-1"
Error Response:
ParameterTypeDescription
errorCodeStringUnique error code. Example: "ERR_OWNER_CANNOT_LEAVE"
errorDescriptionStringHuman-readable error message. Example: "Group owner cannot leave - must transfer ownership first"
Group owner CANNOT leave the group. Owner must transfer ownership first using transferGroupOwnership().
Once a group is left, the user will not receive any updates or messages pertaining to the group.
Group owner CANNOT leave the group. Owner must transfer ownership first using transferGroupOwnership().

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 the onGroupMemberLeft() method of the CometChatGroupDelegate. In order to receive user Events, you must add protocol conformance CometChatGroupDelegate as shown below:
class ViewController: UIViewController, CometChatGroupDelegate {
    
    override func viewDidLoad() {
        super.viewDidLoad()
        CometChat.groupdelegate = self
    }
    
    func onGroupMemberLeft(action: ActionMessage, leftUser: User, leftGroup: Group) {
        print("\(leftUser.name ?? "") left the group \(leftGroup.name ?? "").")
    }
}
Event Trigger: Received via CometChatGroupDelegate.onGroupMemberLeft(action:leftUser:leftGroup:)ActionMessage Object:
ParameterTypeDescription
actionStringAction type. Example: "left"
actionByUserUser who performed the action. Example: {"uid": "user123", "name": "John"}
actionForGroupGroup where action occurred. Example: {"guid": "group123", "name": "My Group"}
leftUser (User Object):
ParameterTypeDescription
uidString?Unique identifier of the user who left. Example: "user123"
nameString?Display name of the user. Example: "John Doe"
avatarString?URL to the user’s avatar image. Example: "https://example.com/avatar.png"
statusUserStatusCurrent online status. Example: .online
leftGroup (Group Object):
ParameterTypeDescription
guidStringUnique group identifier. Example: "group123"
nameString?Group display name. Example: "My Group"
membersCountIntUpdated member count (decremented). Example: 14
Do not forget to set your view controller as a CometChat delegate probably in 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 an Action 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:
FieldValueDescription
action"left"Action type
actionByUser objectUser who left the group
actionForGroup objectGroup the user left

CometChatGroupDelegate

Listen for real-time group events by conforming to CometChatGroupDelegate.

Delegate Methods

MethodParametersDescription
onMemberAddedToGroupaction, addedBy, addedUser, addedToMember added
onGroupMemberLeftaction, leftUser, leftGroupMember left
onGroupMemberJoinedaction, joinedUser, joinedGroupMember joined
onGroupMemberKickedaction, kickedUser, kickedBy, kickedFromMember kicked
onGroupMemberBannedaction, bannedUser, bannedBy, bannedFromMember banned
onGroupMemberUnbannedaction, unbannedUser, unbannedBy, unbannedFromMember unbanned
onGroupMemberScopeChangedaction, updatedUser, scopeChangedTo, scopeChangedFrom, groupScope changed
onOwnershipChangedgroup, newOwnerOwner changed
Setup Configuration:
ParameterTypeDescription
groupdelegateCometChatGroupDelegateReference to the delegate object. Example: self
Listening Status:
ParameterTypeDescription
statusStringCurrent listening state. Example: "Listening for group events"
Events Being Monitored:
EventDescription
onMemberAddedToGroupWhen member is added
onGroupMemberLeftWhen member leaves
onGroupMemberJoinedWhen member joins
onGroupMemberKickedWhen member is kicked
onGroupMemberBannedWhen member is banned
onGroupMemberUnbannedWhen member is unbanned
onGroupMemberScopeChangedWhen scope changes
onOwnershipChangedWhen ownership transfers
Cleanup Configuration:
ParameterTypeDescription
groupdelegateCometChatGroupDelegate?Set to nil to stop receiving events. Example: nil
Listening Status:
ParameterTypeDescription
statusStringCurrent listening state. Example: "No longer listening for group events"
  • Set delegate in viewDidLoad(): CometChat.groupdelegate = self
  • Remove delegate when view is dismissed to avoid memory leaks

Common Error Codes

Error CodeDescriptionResolution
ERR_NOT_LOGGED_INUser is not logged inLogin first using CometChat.login()
ERR_GUID_NOT_FOUNDGroup does not existVerify the GUID is correct
ERR_GROUP_NOT_JOINEDNot a member of this groupUser must be a member to leave
ERR_OWNER_CANNOT_LEAVEOwner cannot leave groupTransfer ownership first using transferGroupOwnership()