Background
OOM stands for “out of memory”, indicating that the operating system has killed an app for exceeding memory limits.
For iOS, it is extremely difficult to identify which forced system terminations are truly out-of-memory crashes versus any number of other unclean or unidentified exits. Examples include, but are not limited to:
- An app taking too long to finish launching.
- An app using excessive CPU resources.
- An app trying to access data it should not have access to.
- An app’s certificate has expired.
It’s difficult to isolate these generally rare, miscellaneous exits from true OOMs because iOS, as an Apple-based operating system, shares less information with external SDKs compared to Android. The method that Embrace, as well as most other mobile observability tools, has been using to pinpoint OOMs has therefore been a process of elimination.
This method involves identifying the conditions around which the app was terminated, the conditions around which it was reopened, and various other criteria that, together, allow providers to eliminate most other reasons for a termination and reach the conclusion that an OOM is responsible.
What’s changing
While this method has helped us catch most OOM crashes, it is clearly imperfect and misses crucial information. We have listened to feedback from our customers that this feature should be more helpful, and are undertaking a product initiative to better solve the problem of OOM identification.
Until we are able to do that, OOMs on iOS will no longer be recognized by this term on our dashboard. You will instead see a group of app terminations labeled as “Uncategorized Exits” (or “UE” where abbreviated). This group includes OOMs, as well as app kills for miscellaneous reasons as listed above. We are not able to isolate true OOMs from the rest of the Uncategorized Exits at this time.
Does this change how my data is collected and grouped?
In short, no. This is a change in name and terminology only, and does not affect how we collect, store, or show your app’s actual data. The figures you see for “Uncategorized Exits” are exactly what you would see had we kept the same naming convention of “OOMs”.
When we solve for a better way to identify OOMs, the way this data is categorized and shown will change due to changes at the SDK code level. We will make customers aware of this change before it affects their apps.
If you have any questions or need further assistance with this issue, please reach out to your Customer Success Manager or send a note to support@embrace.io.