Automatic Detection and Reporting of OOM errors

Duncan Hewett

From a development perspective, what’s the most frustrating type of application “crash”? We can likely all agree that it’s those poor user experiences that aren’t entirely your app’s fault.

Specifically, consider Out of Memory (OOM) errors. When a consumer’s device is running low on memory, iOS can terminate an application’s active session in order to protect other apps and services. The open app takes the hit, even if it’s not the cause of the error.

While this scenario has been challenging to address in the past, we’re excited to announce that Bugsnag is extending coverage of iOS crashes to include automatic detection and reporting of OOM errors, available on native iOS, React Native, and Unity apps.

Why are OOM errors so bad?

While OOM errors occur because of low memory issues, that distinction is usually lost on the user. From his or her perspective, the app suddenly disappears or shuts down without warning, which feels exactly like a crash. The user is forced to restart the app, which may or may not pick up where he or she left off.

In short, the user experience reflects poorly on your app and is just as frustrating as if a crash occurred due to a bug in the code. These instances are a key reason why users may abandon your app or give it a bad review.

Utilize powerful diagnostics

When your app is terminated by iOS, Bugsnag now provides visibility into this new category of errors to help you discover patterns. For example, you may learn that OOMs are more common on specific older iPhone versions, or it may become obvious that certain features in your app are more likely to trigger an OOM.

By pinpointing these commonalities, it’s easier to reproduce and fix the real issues. In contrast to Apple Store Connect and Crashlytics which simply show counts of OOMs, Bugsnag helps identify possible causes of OOMs and collects powerful diagnostic information, including:

  • Breadcrumbs that record the actions users performed in the run-up to an error; and
  • Device and OS information that can help identify patterns in OOMs.
Out of memory breadcrumbs.

Measure your app’s stability

To start reporting OOMs, simply upgrade to the latest version of bugsnag-cocoa. OOMs will be automatically detected whether the app is in the foreground. While disabled by default, it’s easy to enable reporting of background OOMs as well.

Like any other crash, OOMs contribute towards your app’s stability score. You can track stability between versions of your app on the releases dashboard and measure how it changes over time. With automatic detection and reporting of OOMs, you’ll have an even better sense of how stable your app appears for your users at all times.

Share