Description
In “onUserJoin” callback, we are using the passed “lstUserID” param to get the list of UserIDs of users who have joined and use those UserIDs to fetch individual user details by calling GetUserByUserID of ParticipantController for each UserID. However, sometimes, intermittently, for one of the UserID the function GetUserByUserID returns NULL when calling the function from inside “onUserJoin” to fetch individual user details.
Which version?
v4.4.56616.1028
To Reproduce(If applicable)
Occurs Intermittently. I faced it once when I was admitting users from Waiting Room one by one.
Additional context
The Code we are using void ZoomController::onUserJoin(IList<unsigned int >* lstUserID, const wchar_t* strUserList) { int count = lstUserID->GetCount(); int userId; Json::Value userArrayJson; Json::Value participants; userArrayJson = Json::arrayValue; participants = Json::arrayValue; for (int i = 0; i < count; ++i) { userId = lstUserID->GetItem(i); IMeetingParticipantsController *participantsController = meetingService->GetMeetingParticipantsController(); IUserInfo* user = participantsController->GetUserByUserID(userId); if (user) { userArrayJson.append(convertToJson(user)); participants.append(convertToJsonV2(user)); Json::Value logJson; logJson["userJoin"]["id"] = userId; logJson["userJoin"]["email"] = userArrayJson[i]["email"]; logJson["userJoin"]["name"] = userArrayJson[i]["name"]; LOG_INFO(TAG) << Utility::jsonToString(logJson); } else { LOG_WARNING(TAG) << "Participant join user id: " << userId << " does not exist"; } } }
Sent the SDK logs of a meeting where we faced this issue to @carson.zoom through personal message
Thanks for the reply and thanks again for the log files. We are able to identify an issue with this interface and we will fix it in the next release, which will be out very soon. Pardon the inconvenience caused by this.
Thansk for the reply. Are you using v4.6.15798.0403? Could you name some of the interfaces that you are getting NULL with? Could you provide the SDK log so that we could further investigate?
I seem to be again getting the same issue of IUserInfo being returned NULL by IMeetingParticipantsController::GetUserByUserID when being called for userID (say xyz) received in plstActiveAudio parameter of IMeetingAudioCtrlEvent::onUserActiveAudioChange callback.
Also, IMeetingParticipantsCtrlEvent::onUserJoin callback was not received for the same xyz userID, but IMeetingAudioCtrlEvent::onUserActiveAudioChange callback was received.
Sending the SDK logs to you separately through personal message.
Thank you very much and I have received the log. I will pass them to the engineering team for further investigation. Will get back to you as soon as I heard back from the team.
Thanks for the follow-up. The engineering team would need some additional help from you if possible:
When the IMeetingParticipantsController::GetUserByUserID returns NULL, could you help to record the userID that is being used? It would also be helpful if you could record the time when you receive the callback.
The UserId for which it returned NULL was 16785408.
These are the UTC timestamps when the GetUserByUserID returned NULL for above-mentioned userId: 2020-06-03 19:00:52.292337 2020-06-03 19:00:52.291847