iOS: Event Ended Issue When Using MeetingSDK WaitingRoom

iOS MeetingSDK 5.12.2
zoom-sdk-ios-5.12.2.4959

When a user joins a meeting after being allowed in from the meeting room, the following occurs:

For the Android, WebSDK: WaitingRoom => Permission => JoinMeeting
For the iOS SDK: WaitingRoom => Permisson => (Event: onMeetingEnded, MobileRTCMeetingEndReason.selfLeave) => JoinMeeting
(zoom-sdk-ios-5.12.2.4959)

Even though the participant successfully enters the room, the log shows an Event Ended message as soon as the participant joins the room.
Is there a way to fix this issue?

Hi @uehara.masaki , thanks for the post! I followed the steps and tried to reproduce the problem, but onMeetingEndedReason is never reached from my side. Are you running the sample app in zoom-sdk-ios-5.12.2.4959 or running your own app? Also, can you please show me the logs containing the error? Thank you.

Hi, Qing.
thank you for your reply.
We produce original application using ZoomSDK.
and use the waiting room.

It is the cord of the crank output part.
event: onMeetingEndedReason

func onMeetingEndedReason(_ reason: MobileRTCMeetingEndReason) {
    if (reason == MobileRTCMeetingEndReason.selfLeave) {
        print("##### User leaves meeting. #####")
    } else {
        print("##### Other reason. #####")
    }

I list log.
In a timing of Accept permission, “##### the user leaves the meeting. #####” is output in onMeetingEndedReason.

Join Meeting.

2023-01-23 19:20:18.557070+0900 N-LINE[8598:551462] Join a Meeting res:0
2023-01-23 19:20:18.577385+0900 N-LINE[8598:551462] ##### onMeetingStatChange: 1 #####
2023-01-23 19:20:20.583961+0900 N-LINE[8598:551462] [TableView] Warning once only: UITableView was told to layout its visible cells and other contents without being in the view hierarchy (the table view or one of its superviews has not been added to a window). This may cause bugs by forcing views inside the table view to load and perform layout without accurate information (e.g. table view bounds, trait collection, layout margins, safe area insets, etc), and will also cause unnecessary performance overhead due to extra layout passes. Make a symbolic breakpoint at UITableViewAlertForLayoutOutsideViewHierarchy to catch this in the debugger and see what caused this to occur, so you can avoid this action altogether if possible, or defer it until the table view has been added to a window. Table view: <ZMHorizontalTableView: 0x10caf8e00; baseClass = UITableView; frame = (-146 146; 667 375); transform = [6.123233995736766e-17, -1, 1, 6.123233995736766e-17, 0, 0]; clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x282b21ad0>; layer = <CALayer: 0x282696740>; contentOffset: {0, 0}; contentSize: {667, 375}; adjustedContentInset: {0, 0, 0, 0}; dataSource: <ZMZoomViewController: 0x10c254e00>>
2023-01-23 19:20:20.595507+0900 N-LINE[8598:551462] ##### onMeetingStatChange: 1 #####
2023-01-23 19:20:20.612901+0900 N-LINE[8598:551462] ##### onMeetingStatChange: 1 #####
Error allocating color space
2023-01-23 19:20:21.014729+0900 N-LINE[8598:551462] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) ‘Permission denied’, port = 0x16a13, name = ‘.31003412.rpc’
See /usr/include/servers/bootstrap_defs.h for the error codes.
2023-01-23 19:20:21.274759+0900 N-LINE[8598:551462] onMeetingError: 0, success
2023-01-23 19:20:21.574528+0900 N-LINE[8598:551462] CreateAudioUnit use hardware aec = 1
2023-01-23 19:20:21.843327+0900 N-LINE[8598:551462] [IOS].CreateAudioUnit g_audioUinits.count = 1
2023-01-23 19:20:21.843721+0900 N-LINE[8598:551462] AudioDeviceIOS::SetMuteOutputAudioUnit unmute output
2023-01-23 19:20:22.146084+0900 N-LINE[8598:551462] AudioDeviceIOS::SetMuteOutputAudioUnit can mute = 1
2023-01-23 19:20:22.152705+0900 N-LINE[8598:551462] AudioDeviceIOS::SetMuteOutputAudioUnit can mute = 1
2023-01-23 19:20:22.446875+0900 N-LINE[8598:551462] ##### onMeetingStatChange: 11 #####
2023-01-23 19:20:22.449028+0900 N-LINE[8598:551462] ##### onMeetingStatChange: 11 #####

onMeetingReady.

2023-01-23 19:20:22.450682+0900 N-LINE[8598:551462] ##### onMeetingStatChange: 11 #####
2023-01-23 19:20:22.450750+0900 N-LINE[8598:551462] ##### onMeetingStatChange: 11 #####
2023-01-23 19:20:22.581684+0900 N-LINE[8598:551462] joinMeeting then
2023-01-23 19:20:22.581923+0900 N-LINE[8598:551462] Successfully start/join meeting.,success
2023-01-23 19:20:22.582034+0900 N-LINE[8598:551462]
2023-01-23 19:20:23.579319+0900 N-LINE[8598:551462] ########## wait for apploval.
2023-01-23 19:20:24.583722+0900 N-LINE[8598:551462] ########## wait for apploval.
2023-01-23 19:20:25.584098+0900 N-LINE[8598:551462] ########## wait for apploval.
2023-01-23 19:20:26.586906+0900 N-LINE[8598:551462] ########## wait for apploval.
2023-01-23 19:20:27.588522+0900 N-LINE[8598:551462] ########## wait for apploval.
2023-01-23 19:20:28.613569+0900 N-LINE[8598:551462] ########## wait for apploval.
2023-01-23 19:20:29.591592+0900 N-LINE[8598:551462] ########## wait for apploval.
2023-01-23 19:20:30.600641+0900 N-LINE[8598:551462] ########## wait for apploval.
2023-01-23 19:20:31.612282+0900 N-LINE[8598:551462] ########## wait for apploval.
2023-01-23 19:20:32.260605+0900 N-LINE[8598:551462] [unspecified] An empty string is not a valid group container identifier.
2023-01-23 19:20:32.260803+0900 N-LINE[8598:551462] [unspecified] container_create_or_lookup_app_group_path_by_app_group_identifier: client sent invalid parameters
2023-01-23 19:20:32.267448+0900 N-LINE[8598:551462] ##### onMeetingStatChange: 1 #####
2023-01-23 19:20:32.267600+0900 N-LINE[8598:551462] ##### onMeetingStatChange: 5 #####
Error allocating color space
2023-01-23 19:20:32.356082+0900 N-LINE[8598:551462] [IOS].DestoryAudioUnit g_audioUinits.count = 1
2023-01-23 19:20:32.419098+0900 N-LINE[8598:551462] [IOS].DestoryAudioUnit dispose all audioUinits
2023-01-23 19:20:32.450075+0900 N-LINE[8598:551462] ##### onMeetingStatChange: 1 #####

User leaves meeting.

2023-01-23 19:20:32.509378+0900 N-LINE[8598:552148] [assertion] Error acquiring assertion: <Error Domain=RBSServiceErrorDomain Code=1 “target is not running or doesn’t have entitlement com.apple.runningboard.assertions.webkit” UserInfo={NSLocalizedFailureReason=target is not running or doesn’t have entitlement com.apple.runningboard.assertions.webkit}>
2023-01-23 19:20:32.511103+0900 N-LINE[8598:552148] [ProcessSuspension] 0x11c004300 - ProcessAssertion: Failed to acquire RBS assertion ‘ConnectionTerminationWatchdog’ for process with PID=8612, error: Error Domain=RBSServiceErrorDomain Code=1 “target is not running or doesn’t have entitlement com.apple.runningboard.assertions.webkit” UserInfo={NSLocalizedFailureReason=target is not running or doesn’t have entitlement com.apple.runningboard.assertions.webkit}
2023-01-23 19:20:32.518870+0900 N-LINE[8598:552148] [assertion] Error acquiring assertion: <Error Domain=RBSServiceErrorDomain Code=1 “target is not running or doesn’t have entitlement com.apple.runningboard.assertions.webkit” UserInfo={NSLocalizedFailureReason=target is not running or doesn’t have entitlement com.apple.runningboard.assertions.webkit}>
2023-01-23 19:20:32.519012+0900 N-LINE[8598:552148] [ProcessSuspension] 0x11c0043c0 - ProcessAssertion: Failed to acquire RBS assertion ‘WebProcess Suspended Assertion’ for process with PID=8612, error: Error Domain=RBSServiceErrorDomain Code=1 “target is not running or doesn’t have entitlement com.apple.runningboard.assertions.webkit” UserInfo={NSLocalizedFailureReason=target is not running or doesn’t have entitlement com.apple.runningboard.assertions.webkit}
Error allocating color space
2023-01-23 19:20:32.838408+0900 N-LINE[8598:551462] ##### onMeetingStatChange: 7 #####
2023-01-23 19:20:34.972887+0900 N-LINE[8598:551462] ##### onMeetingStatChange: 1 #####
Error allocating color space
2023-01-23 19:20:35.308351+0900 N-LINE[8598:551462] *** CFMessagePort: bootstrap_register(): failed 1100 (0x44c) ‘Permission denied’, port = 0x840b, name = ‘.31238710.rpc’
See /usr/include/servers/bootstrap_defs.h for the error codes.
2023-01-23 19:20:35.574422+0900 N-LINE[8598:551462] onMeetingError: 0, success
2023-01-23 19:20:35.671773+0900 N-LINE[8598:551462] CreateAudioUnit use hardware aec = 1
2023-01-23 19:20:35.678695+0900 N-LINE[8598:551462] [IOS].CreateAudioUnit g_audioUinits.count = 1
2023-01-23 19:20:35.678903+0900 N-LINE[8598:551462] AudioDeviceIOS::SetMuteOutputAudioUnit unmute output
2023-01-23 19:20:35.936830+0900 N-LINE[8598:551462] AudioDeviceIOS::SetMuteOutputAudioUnit can mute = 1
2023-01-23 19:20:35.943135+0900 N-LINE[8598:551462] AudioDeviceIOS::SetMuteOutputAudioUnit can mute = 1
Error allocating color space

onMeetingReady.

2023-01-23 19:20:36.358695+0900 N-LINE[8598:551462] ##### onMeetingStatChange: 3 #####
2023-01-23 19:20:39.237571+0900 N-LINE[8598:551462] AudioDeviceIOS::SetMuteOutputAudioUnit can mute = 1

Hi @uehara.masaki , thanks for providing the logs. I can see from the logs that onMeetingEndedReason is reached before the user joins the meeting. However, I still cannot reproduce the problem since I don’t have the codes you are building. I tried in the the sample app again, and onMeetingEndedReason is never reached when a user joins a meeting from waiting room.

Can you please check the codes to see if you call leaveMeeting somewhere like in timeout handling? Also, my suggestion is to try and compare the sample app for joining a meeting, and please feel free to post any updates there if you can find a way to reproduce the problem, thank you.