Error joining webinar as panelist on iOS with `MobileRTCMeetError(rawValue: 21)`

Description

We have an iOS app and are using v5.11.10 of the iOS Meetings SDK. When trying to join a Zoom Webinar as a panelist, the following error is being produced.

MobileRTCMeetError: MobileRTCMeetError(rawValue: 21) join the webinar from the link

…which appears to make reference to this in MobileRTCConstants.h

    ///User needs to register an account if he wants to join the webinar by the link.
    MobileRTCMeetError_RegisterWebinarPanelistRegister  = 21,

We’re not quite sure what this means and have not been able to find any information on it.

With the iOS Meeting SDK, a participant is only able to join as a panelist if they enter as an attendee then get promoted to a panelist. At this point, the app will exit and a message will show they are rejoining as a panelist. However, if the user leaves the webinar now, they will not be able to rejoin with the same error as above. They need to be removed as a panelist in order to rejoin the webinar.

Here’s the code we’re using to join the Webinar.

    func joinMeeting(meetingNumber: String, meetingPassword: String) {
        // Obtain the MobileRTCMeetingService from the Zoom SDK, this service can start meetings, join meetings, leave meetings, etc.
        if let meetingService = MobileRTC.shared().getMeetingService() {

            // Set the ViewController to be the MobileRTCMeetingServiceDelegate
            meetingService.delegate = self
            // Create a MobileRTCMeetingJoinParam to provide the MobileRTCMeetingService with the necessary info to join a meeting and avoid name/email prompt when joining webinar or meeting.
            let user = MobileRTCMeetingStartParam4WithoutLoginUser.init()
            user.userName = kSDKUserName
            user.userID = kSDKEmail
            // In this case, we will only need to provide a meeting number and password.
            let joinMeetingParameters = MobileRTCMeetingJoinParam()
            joinMeetingParameters.meetingNumber = meetingNumber
            joinMeetingParameters.password = meetingPassword
            joinMeetingParameters.userName = kSDKUserName
            // Call the joinMeeting function in MobileRTCMeetingService. The Zoom SDK will handle the UI for you, unless told otherwise.
            // If the meeting number and meeting password are valid, the user will be put into the meeting. A waiting room UI will be presented or the meeting UI will be presented.
            meetingService.joinMeeting(with: joinMeetingParameters)
            meetingService.delegate = self
        }
    }

Again, it works fine when joining as a webinar attendee, but not as a panelist. We have similar code for our WebSDK implementation and that one works for panelists.

Error?

MobileRTCMeetError: MobileRTCMeetError(rawValue: 21) join the webinar from the link

Troubleshooting Routes

  • Tried updating to latest version of Meeting SDK (v.5.12.2) and still experiencing the issue.

How To Reproduce
Steps to reproduce the behavior including:

  1. Set up a webinar
  2. Set webinar registration settings to “required” and “automatically approve”
  3. Add a panelist with email address
  4. Join the webinar using the panelist name, email, webinar # and password.

Thank you for providing details, @jj1! Based on the error it seems like when rejoining the webinar, the user is not being identified. Can you share if the user rejoins the webinar via the same link or is the tk parameter used ? If not, can you try rejoining the webinar with the registration token and see if the problem persists?

1.4 Meeting error codes

https://marketplace.zoom.us/docs/sdk/native-sdks/iOS/resource/error-codes/

@donte.zoom

We aren’t passing the tk param anywhere at the moment, but we do have it. I’m assuming we should then be using it for MobileRTCMeetingJoinParam? If so, which property should we set the registrant token to webinarToken? join_token?

@jj1 ,
The registration token should be passed as the Webinar token.