Summary
We're seeing a frequent fatal EXC_BREAKPOINT inside -[IMTelemetryComponent updatePayloadWithCommonKeys:] in InMobiSDK 11.1.0, integrated via Google Mobile Ads mediation. It's one of the top crashes in our app — roughly 100 crashes / 100 affected users in 7 days on our latest release (and ~1,200+ events across all app versions in the same window). It is not device- or OS-specific (breakdown below), and it has persisted across multiple InMobi SDK releases.
Environment
- InMobiSDK: 11.1.0 (static XCFramework, manual integration)
- Integration: Google Mobile Ads mediation — InMobiAdapter 11.1.0.0, GMA SDK 13.x
- Crash reporter: Firebase Crashlytics
- Platform: iOS (wide range, see below)
Exception
EXC_BREAKPOINT (SIGTRAP) — blamed frame -[IMTelemetryComponent updatePayloadWithCommonKeys:] (offset 72), library InMobiSDK.
Symbolicated stack (crashing thread)
swift_unknownObjectRetain <-- crash
String._bridgeToObjectiveCImpl()
bridgeAnythingNonVerbatimToObjectiveC(...)
_SwiftDeferredNSDictionary.bridgeValues()
_SwiftDeferredNSDictionary.getObjects(_:andKeys:count:)
@objc _SwiftDeferredNSDictionary.getObjects(_:andKeys:count:)
-[NSDictionary initWithDictionary:copyItems:]
-[__NSPlaceholderDictionary initWithDictionary:copyItems:]
-[IMTelemetryComponent updatePayloadWithCommonKeys:]
+[IMTelemetryComponent sendTelemetryEvent:withPayload:]
block_destroy_helper (x4)
-[IMRenderView sendCallbackForTemplateEvent:]
-[IMBaseProcessor sendCallbackForRichMediaTemplateEvent:]
__62-[IMExtrasProcessor submitTemplateEventWithParams:withScheme:]_block_invoke
_dispatch_call_block_and_release
Analysis / hypothesis
This is a Swift→Objective-C bridging fault. updatePayloadWithCommonKeys: calls -[NSDictionary initWithDictionary:copyItems:], which triggers _SwiftDeferredNSDictionary.bridgeValues() and then faults in swift_unknownObjectRetain — i.e. it retains an object that has already been deallocated (or is being mutated on another thread). The telemetry event is submitted from a background dispatch block (_dispatch_call_block_and_release → IMExtrasProcessor submitTemplateEventWithParams:), which points to a lifetime / thread-safety issue in how the telemetry payload dictionary (or a value inside it) is captured and copied — a value appears to be released out from under the copy.
Frequency & spread (last 7 days)
OS versions (events): iOS 26.5.0 (793), 26.5.1 (201), 26.4.2 (57), 26.3.1 (41), 27.0 beta (24), 18.7.8 (22), 26.2.x (26) — spans iOS 18 through 27.
Devices: spread across ~30 models — iPhone 16 Pro Max (171), 15 Pro Max (130), 17 Pro Max (129), 16 Pro (124), 17 Pro (88), … down through iPhone 11 / SE and a handful of iPads. No single device dominates.
So it reproduces broadly across the fleet rather than on a specific device or OS.
Repro context
From breadcrumbs it occurs in the foreground, typically shortly after an ad / rich-media template callback. We don't have deterministic steps — it fires from InMobi's own telemetry dispatch.
Questions
- Is this a known issue, and is it addressed in a newer SDK (11.2.0 / 11.3.0)? We didn't see it called out in the changelogs.
- Is there anything on the integration side that could trigger it (e.g. values passed via extras)?
- Any mitigation guidance in the meantime?
Happy to provide a full Crashlytics export or additional sample events.
Summary
We're seeing a frequent fatal
EXC_BREAKPOINTinside-[IMTelemetryComponent updatePayloadWithCommonKeys:]in InMobiSDK 11.1.0, integrated via Google Mobile Ads mediation. It's one of the top crashes in our app — roughly 100 crashes / 100 affected users in 7 days on our latest release (and ~1,200+ events across all app versions in the same window). It is not device- or OS-specific (breakdown below), and it has persisted across multiple InMobi SDK releases.Environment
Exception
EXC_BREAKPOINT (SIGTRAP)— blamed frame-[IMTelemetryComponent updatePayloadWithCommonKeys:](offset 72), libraryInMobiSDK.Symbolicated stack (crashing thread)
Analysis / hypothesis
This is a Swift→Objective-C bridging fault.
updatePayloadWithCommonKeys:calls-[NSDictionary initWithDictionary:copyItems:], which triggers_SwiftDeferredNSDictionary.bridgeValues()and then faults inswift_unknownObjectRetain— i.e. it retains an object that has already been deallocated (or is being mutated on another thread). The telemetry event is submitted from a background dispatch block (_dispatch_call_block_and_release→IMExtrasProcessor submitTemplateEventWithParams:), which points to a lifetime / thread-safety issue in how the telemetry payload dictionary (or a value inside it) is captured and copied — a value appears to be released out from under the copy.Frequency & spread (last 7 days)
OS versions (events): iOS 26.5.0 (793), 26.5.1 (201), 26.4.2 (57), 26.3.1 (41), 27.0 beta (24), 18.7.8 (22), 26.2.x (26) — spans iOS 18 through 27.
Devices: spread across ~30 models — iPhone 16 Pro Max (171), 15 Pro Max (130), 17 Pro Max (129), 16 Pro (124), 17 Pro (88), … down through iPhone 11 / SE and a handful of iPads. No single device dominates.
So it reproduces broadly across the fleet rather than on a specific device or OS.
Repro context
From breadcrumbs it occurs in the foreground, typically shortly after an ad / rich-media template callback. We don't have deterministic steps — it fires from InMobi's own telemetry dispatch.
Questions
Happy to provide a full Crashlytics export or additional sample events.