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

Open
#128 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
45/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Quiet
Tech stack
python
Domain
api

Research direction

Start by reproducing the sequence with a new rtms.Client(): let a guest join before an authenticated user, then compare the meeting.participant_joined payload with the reverse order. Investigate how the RTMS webhook service populates participant identity fields; done means authenticated users consistently receive their email regardless of join order while guests remain empty.

Written by the indexing model from the issue text.

Description

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
Dominant language
C++
Stars
41
Forks
20
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from zoom/rtms

All issues in zoom/rtms

Similar issues

More C++ issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.