Skip to content

[BUG] participant_joined event omits email field for authenticated users in consecutive meetings #128

@roach231428

Description

@roach231428

Bug Description

When an unauthenticated (guest) participant is the first to join a Zoom RTMS meeting, all subsequent meeting.participant_joined webhook events for authenticated users will omit the email field, even though those users are logged in.

If an authenticated user joins first (before any guest participants), their email field is correctly included in the webhook event. This suggests the RTMS webhook service may be setting a meeting-level flag or metadata based on the first participant who joins, which affects how participant identity information is populated for all subsequent participants.

Language/Runtime

Python

SDK Version

1.1.0

Environment Details

  • OS: Ubuntu 24.04.4 LTS
  • Node.js version: v24.14.0

Steps To Reproduce

  1. Create a new rtms.Client() instance and connect to a meeting.
  2. Have an unauthenticated (guest) participant join the meeting first.
  3. Then have an authenticated Zoom user join the same meeting.
  4. Observe the meeting.participant_joined webhook event for the authenticated user.
  5. Note that the email field is empty in the participant data.
  6. For comparison, join a new meeting where the authenticated user joins first (before any guest).
  7. Observe the meeting.participant_joined webhook event — the email field is now correctly populated.

Expected Behavior

The meeting.participant_joined webhook event should always include the email field for authenticated Zoom users, regardless of the order in which participants join the meeting.

Actual Behavior

Case 1: Guest joins first, then authenticated user — email is MISSING:

09:56:54 - sss 123() has been joined.               ← Guest, no email (expected)
09:57:10 - user1() has been joined.                 ← Authenticated user, but email is EMPTY (BUG!)

Webhook payload for authenticated user:

{
  "event": "meeting.participant_joined",
  "payload": {
    "participant": {
      "user_id": "xxxxx",
      "user_name": "user1",
      "email": ""
    }
  }
}

Case 2: Authenticated user joins first — email is PRESENT:

09:58:31 - user1(user1@email.com) has been joined.  ← Authenticated user, email is present

Webhook payload for authenticated user:

{
  "event": "meeting.participant_joined",
  "payload": {
    "participant": {
      "user_id": "xxxxx",
      "user_name": "user1",
      "email": "user1@email.com"
    }
  }
}

Code Example

Relevant Log Output

Additional Context

  1. This issue is specifically triggered when an unauthenticated (guest) participant is the first to join a meeting.
  2. The bug affects only the authenticated user's participant_joined event — subsequent events (e.g., on_audio, on_transcript) may still work correctly.
  3. Guest participants correctly have empty email fields in all cases — this is expected behavior.
  4. This bug prevents downstream features that rely on participant email addresses, such as transcription email notifications.

Verification

  • I've searched existing issues to ensure this bug hasn't already been reported
  • I've verified this bug still exists in the latest version of the SDK
  • I've included all necessary information to reproduce this issue

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions