Web Video SDK 2.4.5: Duplicate participant created on network reconnection

Description
Duplicate participant (ghost user) is created when reconnecting to a session after a network disconnection of 1.5 to 2 minutes.

This issue occurs on Web Video SDK version 2.4.5, whereas on version 2.2.12 with the exact same application codebase and reconnection logic, the SDK successfully resumes/rebinds the session without spawning a duplicate user.

Browser Console Error
No explicit JS console error is thrown. However, when calling zmClient.join() upon network recovery, the SDK triggers the user-added event for the same user identity, resulting in two participants with the same name/identity in zmClient.getAllUser().

Which Web Video SDK version?

  • Issue occurs on: 2.4.5
  • Works fine (no duplicate user) on: 2.2.12

Video SDK Code Snippets
N/A

To Reproduce(If applicable)

  1. Join a Zoom Video SDK session as a participant (e.g., “Host”).
  2. Disconnect the network interface completely (simulating internet loss) for 1 minute 30 seconds to 2 minutes.
  3. Re-enable the network interface.
  4. The client application detects internet restoration and calls zmClient.join() using the same credentials.
  5. See duplicate “Host” user in the meeting list (One active with AV, one inactive ghost user).
  6. At exactly 3 minutes since the initial network drop (step 2), the ghost user is removed automatically via the user-removed event.

Screenshots
(Please attach the screenshot of your UI showing 2 “host” users here)

Troubleshooting Routes
N/A

Device (please complete the following information):

  • Device: Windows PC
  • OS: Windows 10/11
  • Browser: Google Chrome
  • Browser Version: [e.g. 120.0.0.0]

Additional context
We noticed major WebAssembly changes in the SDK lib directory between version 2.2.12 and 2.4.5 (such as the addition of audio.dynamic.simd.wasm and new voice translation types). Did the session resumption / auto-rebind behavior change under the hood when calling zmClient.join()?

What is the recommended approach in SDK 2.4.5 to reconnect a dropped user without creating a duplicate participant before the server-side keep-alive timeout (3 minutes) expires?