# Breakout Troubles and Crashes

**URL:** <https://devforum.zoom.us/t/breakout-troubles-and-crashes/47452>\
**Category:** Windows\
**Created:** [April 7, 2021, 3:57pm UTC](https://devforum.zoom.us/t/breakout-troubles-and-crashes/47452 "2021-04-07T15:57:44Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![liminal\_andy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/liminal_andy/32/16222_2.png) [@liminal\_andy](https://devforum.zoom.us/u/liminal_andy)\
**Post date:** [April 7, 2021, 3:57pm UTC](https://devforum.zoom.us/t/breakout-troubles-and-crashes/47452/1 "2021-04-07T15:57:45Z")

</div>

Using the latest Zoom SDK on Windows (saw the issue in previous versions as well).

I am working on adding control of breakouts to my app. I want to create, delete, open, list, and close breakouts, and then I want to send people to breakout rooms, move them between rooms, recall them from rooms to the main space, and then eventually assign and unassign users before the rooms are open.

Here are the results I get when trying to implement this:

-List breakouts works as expected  
-Close breakouts works as expected  
-Send to and move between works as expected

**-Recall from breakout to main area: I am unclear how this is done in the v2 interface for breakouts. What do I need to call?**

**-Open breakouts does not succeed.** My call is  
_SDKInterfaceWrap::GetInst().GetMeetingService()-\>GetMeetingBOController()-\>GetBOAdminHelper()-\>StartBO()_  
and I do this after creating the rooms. It returns false. Clicking the close button in the Zoom UI succeeds.

**Delete breakouts has a bug, but does succeed**  
When using this function in the UI, if you create a breakout in the SDK or UI, then delete it in the UI (have not tried making this crash happen in just pure SDK calls), then open breakouts, then send any user to any breakout, the SDK app will crash without catching anything in the IDE. It seems like a very low level issue. I can email in a crash log if needed.

**Assign to breakouts / unassign from breakouts returns success but does not apply**  
My call to assign is  
_SDKInterfaceWrap::GetInst().GetMeetingService()-\>GetMeetingBOController()-\>GetBOCreatorHelper()-\>AssignUserToBO(w\_bo\_uid, room\_id.c\_str())_  
My call to unassign is:  
_SDKInterfaceWrap::GetInst().GetMeetingService()-\>GetMeetingBOController()-\>GetBOCreatorHelper()-\>RemoveUserFromBO(w\_bo\_uid, room\_id.c\_str())_  
These return true but do not actually apply the action.

I know you have done some breakout tests recently, can we compare notes on the above and figure out where I am either finding bugs or doing something wrong? Thanks in advance.

---

<div class="post-metadata">

**Author:** ![Michael\_Condon](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/michael_condon/32/13543_2.png) [@Michael\_Condon](https://devforum.zoom.us/u/Michael_Condon)\
**Post date:** [April 8, 2021, 9:12pm UTC](https://devforum.zoom.us/t/breakout-troubles-and-crashes/47452/2 "2021-04-08T21:12:37Z")

</div>

Hey @liminal_andy,

Thanks for using the dev forum!

Thank you for the compiled list here. I want to test all of these as well, but under the same conditions as you. I will be OOO tomorrow and will be signing off soon. So I will have to circle back up with you here on Monday. In the meantime, can you zip your modified C#Wrapper and send it to me at [DeveloperSupport@zoom.us](mailto:DeveloperSupport@zoom.us) so that I can compare it with my wrapper when I am testing?

Thanks!  
Michael

---

<div class="post-metadata">

**Author:** ![liminal\_andy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/liminal_andy/32/16222_2.png) [@liminal\_andy](https://devforum.zoom.us/u/liminal_andy)\
**Post date:** [April 8, 2021, 9:27pm UTC](https://devforum.zoom.us/t/breakout-troubles-and-crashes/47452/3 "2021-04-08T21:27:50Z")

</div>

Hey Michael, I actually use the C++ SDK versus the wrapper. Is there something else I should send?

---

<div class="post-metadata">

**Author:** ![Michael\_Condon](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/michael_condon/32/13543_2.png) [@Michael\_Condon](https://devforum.zoom.us/u/Michael_Condon)\
**Post date:** [April 8, 2021, 9:43pm UTC](https://devforum.zoom.us/t/breakout-troubles-and-crashes/47452/4 "2021-04-08T21:43:42Z")

</div>

Hey @liminal_andy,

Oh sorry, no my bad my eyes saw _InterfaceWrap:_ and read _Dot\_Net\_Wrap_ haha.

Michael

---

<div class="post-metadata">

**Author:** ![Michael\_Condon](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/michael_condon/32/13543_2.png) [@Michael\_Condon](https://devforum.zoom.us/u/Michael_Condon)\
**Post date:** [April 13, 2021, 1:47am UTC](https://devforum.zoom.us/t/breakout-troubles-and-crashes/47452/5 "2021-04-13T01:47:06Z")

</div>

Hey @liminal_andy,

> [@liminal\_andy](#):
>
> -Recall from breakout to main area: I am unclear how this is done in the v2 interface for breakouts. What do I need to call?

When an attendee calls LeaveBo() from the AttedeeHelper, they will return to the main meeting room.

> [@liminal\_andy](#):
>
> **-Open breakouts does not succeed.** My call is  
> _SDKInterfaceWrap::GetInst().GetMeetingService()-\>GetMeetingBOController()-\>GetBOAdminHelper()-\>StartBO()_  
> and I do this after creating the rooms. It returns false. Clicking the close button in the Zoom UI succeeds.

This looks to be a race condition. I didn’t see this in prior testing as I had a custom button to call StartBO(). However, when I created a room, assigned user(s) to it, then tried to call StartBO() all in one action, I saw the same behavior as you.

> [@liminal\_andy](#):
>
> **Delete breakouts has a bug, but does succeed**  
> When using this function in the UI, if you create a breakout in the SDK or UI, then delete it in the UI (have not tried making this crash happen in just pure SDK calls), then open breakouts, then send any user to any breakout, the SDK app will crash without catching anything in the IDE. It seems like a very low level issue. I can email in a crash log if needed.

Yes, if you could please send your code SDK logs, and crash dump that would be awesome.

> [@liminal\_andy](#):
>
> **Assign to breakouts / unassign from breakouts returns success but does not apply**  
> My call to assign is  
> _SDKInterfaceWrap::GetInst().GetMeetingService()-\>GetMeetingBOController()-\>GetBOCreatorHelper()-\>AssignUserToBO(w\_bo\_uid, room\_id.c\_str())_  
> My call to unassign is:  
> _SDKInterfaceWrap::GetInst().GetMeetingService()-\>GetMeetingBOController()-\>GetBOCreatorHelper()-\>RemoveUserFromBO(w\_bo\_uid, room\_id.c\_str())_  
> These return true but do not actually apply the action.

How exactly are you verifying that these are not applying? Through the UI, through callbacks?

Thanks!  
Michael

---

<div class="post-metadata">

**Author:** ![liminal\_andy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/liminal_andy/32/16222_2.png) [@liminal\_andy](https://devforum.zoom.us/u/liminal_andy)\
**Post date:** [April 13, 2021, 2:05am UTC](https://devforum.zoom.us/t/breakout-troubles-and-crashes/47452/6 "2021-04-13T02:05:52Z")

</div>

Hey Michael,

On item 1, what if I do not have an SDK client for the attendee? Is there no equivalent call to the “remove from breakout” option in the UI as a breakout administrator? I won’t have the option of deploying my app on the attendee end.

On item 2, I also stagger my actions but do not achieve success in opening the rooms. Is my call correct?

On item 3, I will email a log and dump to the support email shortly

On item 4, I am verifying by opening the UI after creating the assignment and observing that the assignments have not applied.

---

<div class="post-metadata">

**Author:** ![Michael\_Condon](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/michael_condon/32/13543_2.png) [@Michael\_Condon](https://devforum.zoom.us/u/Michael_Condon)\
**Post date:** [April 13, 2021, 5:58pm UTC](https://devforum.zoom.us/t/breakout-troubles-and-crashes/47452/7 "2021-04-13T17:58:45Z")

</div>

Hey @liminal_andy,

> [@liminal\_andy](#):
>
> On item 1, what if I do not have an SDK client for the attendee? Is there no equivalent call to the “remove from breakout” option in the UI as a breakout administrator? I won’t have the option of deploying my app on the attendee end.

I see. Hmm, yeah I am not sure this is currently possible without a workaround. I suppose you could re-assign the user to a new BO room then delete that room, but that is definitely tedious for this purpose. Let me circle back with you on that one.

> [@liminal\_andy](#):
>
> On item 2, I also stagger my actions but do not achieve success in opening the rooms. Is my call correct?

After you stagger the actions is CanStartBO returning true? How are you staggering the calls?

> [@liminal\_andy](#):
>
> On item 3, I will email a log and dump to the support email shortly

Thanks!

> [@liminal\_andy](#):
>
> On item 4, I am verifying by opening the UI after creating the assignment and observing that the assignments have not applied.

So after assigning the users, what happens after you start the breakout rooms? Are they still un-assigned? (I know you havent been able to start the rooms yet, but that is the next thing to investigate).

I am thinking that in your application the user assignments are racing with the starting of the breakout rooms still. Can you verify all the users have been assigned to rooms, wait a little bit, then try starting again?

Thanks!  
Michael

---

<div class="post-metadata">

**Author:** ![liminal\_andy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/liminal_andy/32/16222_2.png) [@liminal\_andy](https://devforum.zoom.us/u/liminal_andy)\
**Post date:** [April 13, 2021, 8:25pm UTC](https://devforum.zoom.us/t/breakout-troubles-and-crashes/47452/8 "2021-04-13T20:25:26Z")

</div>

Great, ran some more tests:

1. As fun as an escape pod breakout room would be, I think the constraints of that system for the end user would indeed be too tight. A command equivalent to the SDK’s UI element for removing someone from a breakout seems the most logical way forward.

2. Doubled the delay in my test suite, now we’re in business!

3. Need to build another dump, sorry for the delay

4. Doubling the delay has caused better behavior, I need to do a rigorous test to be sure

---

<div class="post-metadata">

**Author:** ![liminal\_andy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/liminal_andy/32/16222_2.png) [@liminal\_andy](https://devforum.zoom.us/u/liminal_andy)\
**Post date:** [April 13, 2021, 8:48pm UTC](https://devforum.zoom.us/t/breakout-troubles-and-crashes/47452/9 "2021-04-13T20:48:03Z")

</div>

One other small note, regardless of what delay I use and if the action actually takes place, the callback is SUCCESS, so that’s worth looking at if nothing else.

---

<div class="post-metadata">

**Author:** ![Michael\_Condon](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/michael_condon/32/13543_2.png) [@Michael\_Condon](https://devforum.zoom.us/u/Michael_Condon)\
**Post date:** [April 13, 2021, 9:53pm UTC](https://devforum.zoom.us/t/breakout-troubles-and-crashes/47452/10 "2021-04-13T21:53:08Z")

</div>

Hey @liminal_andy,

> [@liminal\_andy](#):
>
> One other small note, regardless of what delay I use and if the action actually takes place, the callback is SUCCESS, so that’s worth looking at if nothing else.

By callback, do you mean the return value of the method? Or are you referring to a particular event callback?

One confusing thing about the SDK in general is lots of methods return an SDKError enum, that is actually representative of if the call was able to made. Then, there is usually a corresponding event callback that reports on the actual result of the call.  
For example, you can call joinMeeting() and if it returns Success, it does not mean the user successfully joined the meeting. Rather it meant that the SDK was able to call joinMeeting(). You would have to list to the relative callback onMeetingStatusChange to see the result of calling joinMeeting().

Thanks,  
Michael

---

<div class="post-metadata">

**Author:** ![liminal\_andy](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/liminal_andy/32/16222_2.png) [@liminal\_andy](https://devforum.zoom.us/u/liminal_andy)\
**Post date:** [April 15, 2021, 3:58pm UTC](https://devforum.zoom.us/t/breakout-troubles-and-crashes/47452/11 "2021-04-15T15:58:47Z")

</div>

Hi Michael, I will loop back ASAP on this, need a bit more testing time.

---

<div class="post-metadata">

**Author:** ![Michael\_Condon](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/michael_condon/32/13543_2.png) [@Michael\_Condon](https://devforum.zoom.us/u/Michael_Condon)\
**Post date:** [April 15, 2021, 9:18pm UTC](https://devforum.zoom.us/t/breakout-troubles-and-crashes/47452/12 "2021-04-15T21:18:49Z")

</div>

Hey @liminal_andy,

Sounds good, keep me posted!

Michael

---

<div class="post-metadata">

**Author:** ![ekaram](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/ekaram/32/23369_2.png) [@ekaram](https://devforum.zoom.us/u/ekaram)\
**Post date:** [April 20, 2021, 7:18pm UTC](https://devforum.zoom.us/t/breakout-troubles-and-crashes/47452/13 "2021-04-20T19:18:36Z")

</div>

@liminal_andy I’m getting the same issues and the problems are the exact same via the C# wrapper

I found something Odd. I can only add users successfully in the following manner. I need to do both calls for the user to be added to the breakout room

```
bool status = BO_controller.GetBOCreatorHelper().AssignUserToBO(user, id);
                        if (!BO_controller.IsBOStarted())
                        {
                            //Thread.Sleep(TimeSpan.FromSeconds(2));
                            Console.WriteLine("We did not start BO rooms");
                            BO_controller.GetBOAdminHelper().StartBO();
                        }
                        BO_controller.GetBOAdminHelper().AssignNewUserToRunningBO(user, id);

```

@Michael_Condon I found another odd issue to add to this  
Another odd thing is that if add a user and then unassign him to the UI  
`string[] users_left = BO_data.GetUnassginedUserList();`  
Returns an empty list even users are unasinged

---

<div class="post-metadata">

**Author:** ![Michael\_Condon](https://sea2.discourse-cdn.com/flex016/user_avatar/devforum.zoom.us/michael_condon/32/13543_2.png) [@Michael\_Condon](https://devforum.zoom.us/u/Michael_Condon)\
**Post date:** [April 21, 2021, 10:44pm UTC](https://devforum.zoom.us/t/breakout-troubles-and-crashes/47452/14 "2021-04-21T22:44:06Z")

</div>

Hey @ekaram

Can you send me your logs from an instance without this workaround, with the users being prevented from being added to the room? Then can you send seperate logs for this issue:

> [@ekaram](#):
>
> Another odd thing is that if add a user and then unassign him to the UI  
> `string[] users_left = BO_data.GetUnassginedUserList();`  
> Returns an empty list even users are unasinged

Please mention my name and a link to this post in your email.

Thanks!  
Michael

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/flex016/uploads/zoomdeveloper/original/3X/6/1/614bdd549b610bbaa46ff934617683a02bdaa03c.png) [@system](https://devforum.zoom.us/u/system)\
**Post date:** [May 22, 2021, 8:44am UTC](https://devforum.zoom.us/t/breakout-troubles-and-crashes/47452/15 "2021-05-22T08:44:27Z")

</div>

Closed on May 22, 2021, 8:44am UTC

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