Breakout Interface - User ID Format Mystery

We’ve discussed in the past how Zoom user IDs are of type string in the breakout interface but type unsigned int everywhere else. At the time it seemed that this was just a silly type issue, but as we’ve tried to dive deeper into why none of the breakout interfaces are working, it’s become apparent:

In this image, the uid variable is a capture of one such element from the list created by
ZOOMSDK::IList<const wchar_t*>* list = SDKInterfaceWrap::GetInst().GetMeetingService()->GetMeetingBOController()->GetBODataHelper()->GetUnassginedUserList();

The second line is a string cast of a normal user id.

They are clearly quite different in format. What is the rhyme and reason to the IDs used in the BO controller? How to I relate them to the normal user ids used in the rest of the SDK? How can I take a regular user ID and transform it into this mystery format so that I can pass it into


which I assume is expecting this strange string as the user ID input. We’ve got a high profile event where we will need enhanced control of breakout rooms from ZoomOSC if we’re going to do this on the Zoom platform.

Hi @liminal_andy, thanks for bringing this up.

We’ve had some internal discussions regarding the (platform agnostic) expected behavior of breakout rooms, and this type discrepancy has been brought up more than once during them. I’m looking through some of the information our engineering lead has conveyed and seeing some inconsistencies between what was said recently vs a couple of months ago. In order to avoid giving you potentially incorrect instructions on how to handle this, we will need to follow up internally and iron out the details.

I will do my best to get you a quick response on this. Please let me know if you have any other concerns related to breakout rooms in the meantime.


Thanks Jon. In the meantime, is there any way to convert one format to another? Even a speculation? I am happy to test anything.

Hey @liminal_andy,

I do not believe that there is any way to convert between these two. If my understanding of how they are generated is correct, they are not intended to be used interchangeably.


Gotcha. Is there a way of mapping other data, like a username, to these breakout IDs? I ask these questions because the client event is this weekend and I am happy to put together any hacked together solution if it means we can use Zoom for the event over other platforms. I tend to prefer that :slight_smile:

Hi @liminal_andy,

We’re still looking into this, but all of the user-specific data you can access through the breakout interfaces is available in the IBOData class.


Great, I can use the username as a temporary workaround to reconcile the two ID formats. Not bulletproof because two users might have the same name, but it’s a start.

Hi @liminal_andy,

Yes, the username is definitely not a perfect solution for this. Hopefully the discussions we are having will result in a major improvement for BO tracking in general, but unfortunately there are some components involved that are critical to the Zoom meeting infrastructure so it may take some time for us to effect meaningful change on this matter.


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