Zoom Windows SDK - BO Admin CanStartBO() Returns False

Description
Our team is trying to use the Zoom Windows SDK to manipulate the breakout room creation and participant allocation. We have been adding C# wrappers for breakout room controls. Automating the breakout room creation and assigning users into breakout rooms seem to be working fine (although a significant amount of delay is required between these function calls).

However, when we try to use the customised app to start breakout rooms, CanStartBO() from the IBOAdmin class seems to always return false. Consequently, when we call StartBO(), the breakout rooms cannot be started. Also, when we call StartBO(), a weird error TokenNotReady is returned. If we use the UI from the customised app to Start All Breakout Rooms, breakout rooms can be started successfully.

Since the wrapper is correctly fetching the CanStartBO() status and it is showing false, we think that the issue must be related to the Zoom Windows SDK itself?

Which Windows Meeting SDK version?
v5.7.6.1079

Additional context
Here are some logs from our customised Zoom application, and hopefully these can provide some extra information for diagnosing the issue:

Create Test Room 1
Start Assign Users
AssignUserToBO(961752fd474906b7c1205e3045d2386d, {DD2997A2-BE17-4A98-BAC0-84BF36BE1B47}) Result: True
BOController.GetBOStatus() -> Edit
**BOController.GetBOAdminHelper().CanStartBO() -> False**
Retry Starting BO
**Callback[onStartBOError] -> TokenNotReady**
Retry Starting BO
**Callback[onStartBOError] -> TokenNotReady**
Retry Starting BO
**Callback[onStartBOError] -> TokenNotReady**
Retry Starting BO

Thanks a lot in advance for your help!

Kind regards,
Peter

Hey @peter.chen,

Thanks for using the dev forum!

Are you able to start breakout rooms using the default UI?

Thanks!
Michael

Hi Michael,

Yes, if I use the default UI, the breakout room can be started successfully. But when using the SDK, a TokenNotReady error is returned when I try to start breakout rooms automatically.

Kind regards,
Peter

Hey @peter.chen,

At what point are you trying to start the breakout room? Is it right when you enter a meeting? I am curious if there is a race condition here.

Thanks!
Michael

Hi Michael,

Not immediately after entering a meeting. We trigger the breakout room manipulation after assigning a customised Zoom app with host permission, and we add delay for each step (create breakout rooms, assign users to breakout rooms, and start breakout rooms).

But yea, in general, it will be at least a minute after entering the meeting before we try to start breakout rooms.

Kind regards,
Peter

Hey @peter.chen,

Can you email me at DeveloperSupport@zoom.us? In the email please provide the following:

  1. Reproduction steps
  2. SDK logs: To get them, reproduce the issue once more with enableLog set to true in your initParams. After closing the application, the logs will show up in %appData%/roaming/ZoomSDK
  3. A link to this post
  4. Mention my name

Thanks!
Michael

Hi Michael,

Sure thing. I just sent an email to DeveloperSupport@zoom.us with the detailed you requested for investigation.

Kind regards,
Peter

Hey @peter.chen,

Thanks! Will follow up with you there.

Michael

Hi @peter.chen,

Thanks for your patience as we investigated this issue. Based on the information provided, you should wait for the onBOCreateSuccess callback before trying to start a breakout room. Let me know if you are having any issues with this approach and we can investigate further.

Thanks!

Hi Jon,

Thanks a lot for your reply! Unfortunately, after trying out your suggested approach, it still doesn’t work.

However, I did find some more information during the investigation process which might be helpful for your team to diagnose the issue.

I register the callback for onHasCreatorRightsNotification. When I assign the customised Zoom App with host permission, this callback will be triggered and I will start the breakout room creation & participant allocation process.

According to the logs below, it seems that the room has been created and the user has been assigned successfully to the newly created breakout room. However, when I try to call BOController.GetBOAdminHelper().StartBO(), it returns an error. Even if I manually click the Open All Breakout Rooms button on the customised app’s UI now, nothing happens.

I added the onBOCreateSuccess callback for the app, but this callback is never triggered even though I can see the room being created in the customised app’s UI.

Create Room 1: {D431979C-437E-4753-95CB-4BAB3CE14F37}
AssignUserToBO (875cc6004f63f2cb3cfe19e720774344, {D431979C-437E-4753-95CB-4BAB3CE14F37}) Result: True
BOController.GetBOStatus() → Edit
BOController.GetBOAdminHelper().CanStartBO() → False
Retry Starting BO
Callback[onStartBOError] → TokenNotReady
Retry Starting BO

However, when I try to create a new breakout room just using the UI of the customised app, the onBOCreateSuccess callback is immediately triggered successfully, and starting the breakout rooms seem to be working fine as well.

Hence, I think the issue is not actually related to the BO Admin (for starting the breakout room). It is more likely that even though the BOCreator.CreateBO() returns a breakout room ID (indicate that the room has been created successfully) and it is appearing on the customised app’s UI, it is not being created internally?

Not super sure whether I have explained the details clearly, but hopefully these will be helpful for your investigation.

Thanks a lot!
Peter

Hi @peter.chen, thanks for the additional information.

Based on the screenshot you’ve provided, I have another question. Are you using the default meeting UI when you try calling the BO-related functions? They are only meant to be used with custom UI mode, so I want to make sure we’re not missing something on that front.

Thanks!

Hi Jon,

Happy new year and thanks for your reply! I wasn’t aware that the breakout room functions can only be used for the Custom UI mode since all other features except for starting the breakout room works fine with the default meeting UI that I have been using.

I tried to modify my code and use the Custom UI for exploring the Breakout Room feature, but unfortunately, same error was returned to me even with the Custom UI mode.

Since the error is showing TokenNotReady, wonder if you have any idea what does this indicate by any chance? Could it be relevant to the fact that I am using JoinParam4WithoutLogin when instructing the custom app to join a Zoom meeting?

Kind regards,
Peter

Sorry, I just tried with Join4NormalUser and it seems that the TokenNotReady error still exists.

Hi @peter.chen, happy new year to you as well!

I wasn’t aware that the breakout room functions can only be used for the Custom UI mode since all other features except for starting the breakout room works fine with the default meeting UI that I have been using.

The breakout feature is unique in this regard that it can only be used through the default UI or programmatically with a custom UI. Other SDK features can be used interchangeably, but breakout rooms can only be one or the other.

I tried to modify my code and use the Custom UI for exploring the Breakout Room feature, but unfortunately, same error was returned to me even with the Custom UI mode.

Can you confirm which modifications have been made? Are you certain that there are no default UI elements related to the breakout room feature present when you try to programmatically setup the rooms?

Since the error is showing TokenNotReady , wonder if you have any idea what does this indicate by any chance? Could it be relevant to the fact that I am using JoinParam4WithoutLogin when instructing the custom app to join a Zoom meeting?

The params used to join the main meeting should not matter, as long as the current user has sufficient privileges to perform the breakout functionality you are attempting, as mentioned earlier through the related callbacks.

Thanks!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.