Our Zoom App is a robot. That robot automatically approves allowed participants from the Waiting Room and moves them to Breakout Rooms.
Most of the time the participants are successfully approved and transferred to their destination BO Room right when they join the meeting. Sometimes, after the participant is approved, it only gets associated to its destination BO Room, but remains in the Main Room, without joining the BO.
We observed that, when the participant uses the Windows Zoom client (as opposed to the Web client), the participant will join twice - we will see a new UserJoin event (with a new UserID) after a given amount of time (8 seconds). If our robot wait for this second UserJoin to start moving the participant to the BO Room, the participants will always be moved to the BO Room. When the participant uses the Web client, the issue does not show up.
We suppose the first UserJoin event happens right after approving the participant from the Waiting Room to the Main Room (when we see the “Connecting” window). The second one happens when the participant actually come into the Main Room. Most of the time we are lucky; the participant’s Zoom client is able to commit the move before starting the process to join the Main Room, so they directly connect to the BO Room. When we are not lucky, the meeting has the user associated to the BO Room, but the MoveToBO message arrives late to the participant’s Zoom client, and it skips the JoinBO action.
Then, the participant will appear with status code 2 (ASSIGNED_NOT_JOIN) in the Breakout Room participant list. In that case, we are always unable to move them to the desired room.
Solution: We solved the problem by having a “Connection” room, for which we move the participant and then move them to their actual room afterwards.
Which Windows Meeting SDK version?
Device (please complete the following information):
- Device: Dell Latitude 3400
- OS: Windows 10 Pro 22H2
The BOs are setup with the following settings:
- IsParticipantCanChooseBO = false
- IsParticipantCanReturnToMainSessionAtAnyTime = false
- IsAutoMoveAllAssignedParticipantsEnabled = true