Unable to Differentiate Between Voluntary Leave and Admin Removal in ZOOM React Native Video SDK and ZOOM video SDK UI Toolkit

Description

We have integrated the Zoom Video SDK (React Native)( version 2.1.10) for mobile and ZOOM video SDK web UI Toolkit( version 2.2.10-1**)** and facing an issue where the same event (user-removed) is triggered in both of the following scenarios:

  1. When a participant voluntarily leaves the session using the Leave button

  2. When a host/admin removes (kicks) a participant from the session

In both cases, the event payload does not contain any property indicating the reason for removal.

Because of this, we are unable to differentiate between:

  • A voluntary leave

  • A host/admin removal

This impacts our production moderation flow, UI messaging, and session cleanup logic.

Video SDK Code Snippets

We are subscribing to the event as follows:

uitoolkit.on("user-removed", (removed: any) => {
  if (this.sessionType === 'GroupSession') {
    this.userRemoved(removed);
  }
});

The removed object contains participant metadata such as:

  • userId

  • userGuid

  • displayName

  • isHost

  • muted

  • bVideoOn

  • sharerOn

  • subsessionId

However, there is no field indicating whether:

  • The user left voluntarily

  • The user was removed by host/admin


To Reproduce

  1. Start a session with at least two participants (one host, one participant)

  2. Scenario A: Participant clicks the Leave button

  3. Observe user-removed event triggered

  4. Scenario B: Host removes (kicks) the participant

  5. Observe user-removed event triggered

  6. In both cases, the event payload structure is identical.