MobileRTCMeetError - invalidArguments

Hi Zoom Developer Team,

It seems like I can’t start a meeting with Zoom SDK. The return value of startMeeting or joinMeeting is invalidArguments. Please find the related functions below:

// MARK: Start Meeting Method
    func startMeeting(meetingNumber: String, meetingZak: String, hostID: String) {
        guard MobileRTC.shared().isRTCAuthorized() else {
                return
            }
        if let meetingSettings = MobileRTC.shared().getMeetingSettings() {
            meetingSettings.setMuteAudioWhenJoinMeeting(false)
            meetingSettings.setMuteVideoWhenJoinMeeting(false)
            meetingSettings.setAutoConnectInternetAudio(true)
            meetingSettings.enableCustomMeeting = true
            if let meetingService = MobileRTC.shared().getMeetingService() {
                meetingService.delegate = self
                print("Meeting service delegate set")
                meetingService.customizedUImeetingDelegate = self
                print("Meeting service customizedUImeetingDelegate set")
                meetingService.canUnmuteMyVideo()
                meetingService.canUnmuteMyAudio()
                let startMeetingParameters = MobileRTCMeetingStartParam4WithoutLoginUser()
                startMeetingParameters.meetingNumber = meetingNumber
                startMeetingParameters.zak = meetingZak
                let firstname: String = UserDefaults.user?.firstName ?? ""
                let lastname: String = UserDefaults.user?.lastName ?? ""
                let title: String = UserDefaults.user?.title ?? ""
                let userName: String = "\(firstname) \(lastname) \(title)"
                startMeetingParameters.userName = userName
                startMeetingParameters.userType = .apiUser
                startMeetingParameters.userID = hostID
                let bool = meetingService.startMeeting(with: startMeetingParameters)
                print(bool)
            }
        }
    }
    // MARK: Join Meeting Method
    func joinMeeting(meetingNumber: String, meetingZak: String, meetingPassword: String) {
        guard MobileRTC.shared().isRTCAuthorized() else {
                return
            }
        if let meetingSettings = MobileRTC.shared().getMeetingSettings() {
            meetingSettings.setMuteAudioWhenJoinMeeting(false)
            meetingSettings.setMuteVideoWhenJoinMeeting(false)
            meetingSettings.setAutoConnectInternetAudio(true)
            meetingSettings.enableCustomMeeting = true
            if let meetingService = MobileRTC.shared().getMeetingService() {
                meetingService.delegate = self
                print("Meeting service delegate set")
                meetingService.customizedUImeetingDelegate = self
                print("Meeting service customizedUImeetingDelegate set")
                meetingService.canUnmuteMyVideo()
                meetingService.canUnmuteMyAudio()
                let joinMeetingParameters = MobileRTCMeetingJoinParam()
                joinMeetingParameters.meetingNumber = meetingNumber
                joinMeetingParameters.zak = meetingZak
                let firstname: String = UserDefaults.user?.firstName ?? ""
                let lastname: String = UserDefaults.user?.lastName ?? ""
                let title: String = UserDefaults.user?.title ?? ""
                let userName: String = "\(firstname) \(lastname) \(title)"
                joinMeetingParameters.userName = userName
//                joinMeetingParameters.userType = .apiUser
                joinMeetingParameters.password = meetingPassword
                let bool = meetingService.joinMeeting(with: joinMeetingParameters)
                print(bool)
            }
        }
    }

Additionally, SDK gets successfully initialized before I try to start or join a meeting. Also, the callback functions of delegates are not called even for the errors occurring.

I have created a view controller class for the zoom actions (the rest of the app is using SwiftUI as framework) and I make sure it’s extending from MobileRTCCustomizedUIMeetingDelegate, MobileRTCVideoServiceDelegate. I have an other class called ZoomConnection for the MobileRTCAuthDelegate.

The device I’m using for testing is iPhone 11.
Since I cannot attach the log file here, I used wetransfer: WeTransfer - Send Large Files & Share Photos Online - Up to 2GB Free

Have a nice day!

Hi @basakertugrul9, thanks for using the dev forum.

I see that there are several strings being passed into the SDK, but cannot see whether or not they have non-empty values. Can you please confirm which ones have non-empty values assigned? Also, which log file in your upload contains the logs from a session where you failed to join a meeting?

Thanks!

Hello Jon,
I double checked the parameters and I realized that one of them was printed as “Optional(…)” in the console. So I changed the string interpolation method and then the error was gone!
Thank you for your guidance in this matter.

Glad to hear you were able to resolve this!

Please don’t hesitate to reach back out in a new topic with any additional questions. :slightly_smiling_face: