MobileRTC Crash on Crashlytics

Description
We had a lot of MobileRTC crash and MCTCommunication crash, mostly on iPad. Since our iPad app is still using the containerized iPhone version. But we rarely experience crash issue when using v5.5.12511.0421. Using the higher version than that we experience crash issue spiking everyday. Here is our issue roadmap

05/05/21 13.11: Upgrade version to v5.5.12511.0421
22/09/21 15.44: Upgrade version to v5.7.1.645 (We start receiving Mobile RTC error afterwards)
22/09/21 15.44: Upgrade version to v5.7.6.1076 (The issue keep raising)
01/12/21 10.43: Downgrade version to v5.5.12511.0421 (We decided to revert the version, no incoming crash afterwards)
11/01/22 13.41: Upgrade version to v5.9.1.2180 (The crash start happened again)
26/01/22 07.15: Upgrade version to v5.9.1.2191 (The issue keep raising)

Which iOS Meeting SDK version?
v5.9.1.2191

My Stack Trace from Crashlytics
Crashed: com.apple.main-thread

EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x0000545bca84a5c0

0 MobileRTC 0xa98250 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 8733024
1 MobileRTC 0xa928bc TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 8710092
2 MobileRTC 0xa91ff4 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 8707844
3 MobileRTC 0xaa5ddc TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 8789228
4 MobileRTC 0xaa5bb8 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 8788680
5 MobileRTC 0x96eecc TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 7515612
6 MobileRTC 0x96ee98 TermSBPTUIModule(Cmm::ICmmMessageQueueClient*) + 7515560
7 MobileRTC 0x3e3f0 (Missing UUID 5d4ca4bf6fc6357893754dfc2793fecc)
8 Foundation 0x165d20 __NSFireTimer + 64
9 CoreFoundation 0x9b7a8 CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION + 28
10 CoreFoundation 0x9b3a8 __CFRunLoopDoTimer + 1016
11 CoreFoundation 0x9a87c __CFRunLoopDoTimers + 324
12 CoreFoundation 0x94bb4 __CFRunLoopRun + 1948
13 CoreFoundation 0x93ed0 CFRunLoopRunSpecific + 572
14 GraphicsServices 0x3570 GSEventRunModal + 160
15 UIKitCore 0xb302d0 -[UIApplication _run] + 1052
16 UIKitCore 0xb3584c UIApplicationMain + 164

Smartphone (please complete the following information):

  • Device: iPad
  • OS: iOS 15 & 14

Can you help me by giving explanation about what happened ? and is it okay if we stick with the v5.5.12511.0421. How long it will be lasted, as there will be 9-month window rule (v5.5.12511.0421 release is 27 April 2021). Thank you.

Hi @m.syafrizal, thanks for using the dev forum.

Sorry to hear you’re seeing crashes with the SDK. Can you please provide steps to reproduce the crash so that we can investigate further?

Also, as mentioned in our announcements page, the 9 month release window has been delayed. We will send out communications once we have an update on this, but it is still a good idea to stay as up-to-date with the SDK as possible in the meantime. :slightly_smiling_face:

Thanks!

Since it came from Firebase Crashlytics. I only have this Log from Firebase.

iPad Pro (10.5-inch)
iOS: 15.2.0

0 | Fri Feb 04 2022 18:57:02 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidBecomeActive()
1 | Fri Feb 04 2022 18:57:05 GMT+0700 (Western Indonesia Time) | tab_view_genieclass
2 | Fri Feb 04 2022 18:57:05 GMT+0700 (Western Indonesia Time) | switch_lessons
3 | Fri Feb 04 2022 19:42:18 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillResignActive()
4 | Fri Feb 04 2022 19:42:29 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidBecomeActive()
5 | Fri Feb 04 2022 19:42:44 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillResignActive()
6 | Fri Feb 04 2022 19:42:45 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidEnterBackground()
7 | Fri Feb 04 2022 19:43:14 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillEnterForeground()
8 | Fri Feb 04 2022 19:43:15 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidBecomeActive()
9 | Fri Feb 04 2022 19:45:39 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillResignActive()
10 | Fri Feb 04 2022 19:45:41 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidBecomeActive()
11 | Fri Feb 04 2022 19:46:19 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillResignActive()
12 | Fri Feb 04 2022 19:46:24 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidEnterBackground()
13 | Fri Feb 04 2022 19:46:58 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillEnterForeground()
14 | Fri Feb 04 2022 19:46:59 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidBecomeActive()
15 | Fri Feb 04 2022 19:48:27 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillResignActive()
16 | Fri Feb 04 2022 19:48:28 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidEnterBackground()
17 | Fri Feb 04 2022 19:48:33 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillEnterForeground()
18 | Fri Feb 04 2022 19:48:34 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidBecomeActive()
19 | Fri Feb 04 2022 19:49:34 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillResignActive()
20 | Fri Feb 04 2022 19:49:36 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidBecomeActive()
21 | Fri Feb 04 2022 19:50:41 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillResignActive()
22 | Fri Feb 04 2022 19:50:43 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidEnterBackground()
23 | Fri Feb 04 2022 19:51:32 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillEnterForeground()
24 | Fri Feb 04 2022 19:51:34 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidBecomeActive()

iPad Air 2
iOS: 15.1.0

0 | Sat Feb 05 2022 10:09:20 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidBecomeActive()
1 | Sat Feb 05 2022 10:09:29 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillResignActive()
2 | Sat Feb 05 2022 10:09:29 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidEnterBackground()
3 | Sat Feb 05 2022 10:10:27 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillEnterForeground()
4 | Sat Feb 05 2022 10:10:28 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidBecomeActive()
5 | Sat Feb 05 2022 10:10:30 GMT+0700 (Western Indonesia Time) | tab_view_genieclass
6 | Sat Feb 05 2022 10:10:41 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillResignActive()
7 | Sat Feb 05 2022 10:10:42 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidEnterBackground()
8 | Sat Feb 05 2022 10:13:12 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillEnterForeground()
9 | Sat Feb 05 2022 10:13:12 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidBecomeActive()
10 | Sat Feb 05 2022 10:14:24 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillResignActive()
11 | Sat Feb 05 2022 10:14:24 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidEnterBackground()
12 | Sat Feb 05 2022 10:15:05 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillEnterForeground()
13 | Sat Feb 05 2022 10:15:06 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidBecomeActive()
14 | Sat Feb 05 2022 10:16:44 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillResignActive()
15 | Sat Feb 05 2022 10:16:45 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidEnterBackground()
16 | Sat Feb 05 2022 10:17:49 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillEnterForeground()
17 | Sat Feb 05 2022 10:17:49 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidBecomeActive()

iPad Pro (11-inch, 2nd generation)
iOS: 15.2.1

0 | Fri Feb 04 2022 19:09:09 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidBecomeActive()
1 | Fri Feb 04 2022 19:09:11 GMT+0700 (Western Indonesia Time) | tab_view_genieclass
2 | Fri Feb 04 2022 19:16:50 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillResignActive()
3 | Fri Feb 04 2022 19:16:50 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidBecomeActive()
4 | Fri Feb 04 2022 19:16:50 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillResignActive()
5 | Fri Feb 04 2022 19:16:51 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidEnterBackground()
6 | Fri Feb 04 2022 19:16:55 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillEnterForeground()
7 | Fri Feb 04 2022 19:16:56 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidBecomeActive()
8 | Fri Feb 04 2022 19:17:19 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillResignActive()
9 | Fri Feb 04 2022 19:17:20 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidEnterBackground()
10 | Fri Feb 04 2022 19:17:56 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillEnterForeground()
11 | Fri Feb 04 2022 19:17:57 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidBecomeActive()
12 | Fri Feb 04 2022 19:18:15 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillResignActive()
13 | Fri Feb 04 2022 19:18:16 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidBecomeActive()
14 | Fri Feb 04 2022 19:24:43 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillResignActive()
15 | Fri Feb 04 2022 19:24:43 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidBecomeActive()
16 | Fri Feb 04 2022 19:24:44 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillResignActive()
17 | Fri Feb 04 2022 19:24:44 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidEnterBackground()
18 | Fri Feb 04 2022 19:25:32 GMT+0700 (Western Indonesia Time) | AppDelegate applicationWillEnterForeground()
19 | Fri Feb 04 2022 19:25:33 GMT+0700 (Western Indonesia Time) | AppDelegate applicationDidBecomeActive()

Since our apps only build for iPhone and if we run on iPad it will show the container (black border). Maybe that also effect to this bug. Cause this bug only happen to the iPad. What do you think?

Hi @m.syafrizal,

If your build is only targeting iPhone devices, that is likely the cause of this issue, since it seems to only be happening on iPads. Please let me know if you start seeing the crash on devices which your app is targeting and we can investigate this further.

Thanks!

Hi @jon.lieblich ,
How about this error. We had that error even with the iPhone Devices.

Hi @m.syafrizal,

Can you provide the full trace and which version of the SDK was being used? We can try looking into this once we have that information, but we cannot guarantee that we’ll be able to identify a fix unless we’re able to reproduce the crash.

Thanks!

I am facing same issue. Did you find any solution?

Hi @rabia,

Are you able to reproduce the crash locally? If so, please provide steps to reproduce so that we can investigate further. If you cannot reproduce the crash, please see me previous response for the information we will need to investigate this.

Thanks!

Hi @Jon
I have fixed this issue. I was facing this crash when zoom initialisation code was written in AppDelegate as per Zoom documentation, but when I moved this code from App delegate to my main ViewController, crash was fixed.
This is the function that I moved
func setupSDK(authDelegate : MobileRTCAuthDelegate)

Hi @rabia

Every crash issue is different depending on the callstack. We would be able to better assist you if you can provide us your crash logs file through Xcode and the version of the sdk you used before moving your function to main ViewController.

Also it looks like “func setupSDK(authDelegate : MobileRTCAuthDelegate)” is your custom implemented function. Can you please provide us its implementation on how you are calling the SDK code.

Thanks

I have created a Zoom manager where all functions related to zoom are written. In this manager most of the functions I took from sample project of client-idk.
Here is the class:
class ZoomManager : NSObject{

static let shared = ZoomManager()
weak var delegate: MobileRTCMeetingServiceDelegate?

private override init() {
    super.init()
}
// - Parameters:
//   - sdkKey: A valid SDK Client Key provided by the Zoom Marketplace.
//  - sdkSecret: A valid SDK Client Secret provided by the Zoom Marketplace.
func setupSDK(authDelegate : MobileRTCAuthDelegate) {
    // Create a MobileRTCSDKInitContext. This class contains attributes for modifying how the SDK will be created. You must supply the context with a domain.
    let context = MobileRTCSDKInitContext()
    // The domain we will use is zoom.us
    context.domain = "zoom.us"
    // Turns on SDK logging. This is optional.
    context.enableLog = true
    context.appGroupId = zoomGroupID
    // Call initialize(_ context: MobileRTCSDKInitContext) to create an instance of the Zoom SDK. Without initializing first, the SDK will not do anything. This call will return true if the SDK was initialized successfully.
    let sdkInitializedSuccessfully = MobileRTC.shared().initialize(context)

    // Check if initialization was successful. Obtain a MobileRTCAuthService, this is for supplying credentials to the SDK for authorization.
    if sdkInitializedSuccessfully == true, let authorizationService = MobileRTC.shared().getAuthService() {

        // Supply the SDK with SDK Key and SDK Secret. This is required if a JWT is not supplied.
        // To use a JWT, replace these lines with authorizationService.jwtToken = yourJWTToken.
        authorizationService.clientKey = zoomSdkKey
        authorizationService.clientSecret = zoomSdkSecret
        // Assign AppDelegate to be a MobileRTCAuthDelegate to listen for authorization callbacks.
        authorizationService.delegate = authDelegate

        // Call sdkAuth to perform authorization.
        authorizationService.sdkAuth()
    }
}

}

and then I call this function to initialise zoom.
override func viewDidLoad() {
super.viewDidLoad()
ZoomManager.shared.delegate = self
//Zoom SDK initialization
ZoomManager.shared.setupSDK(authDelegate: self)
//Setting Zoom NavigationController
if let navController = self.navigationController{
ZoomManager.shared.setRootViewController(navController: navController)
}
}

and the delegate for auth process (MobileRTCAuthDelegate) is implemented in this class.

But If I put this code to App delegate of initialisation, it causes crashes in many cases.

Please let me know if I am doing anything wrong.
Thanks

Hi @rabia,

As Owais previously mentioned, there is not enough information here to determine the cause of the crash you are seeing. If you can provide the SDK version you are using, the crash trace, and the full implementation, we can look into this further.

Thanks!

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