May 5, 2021

iOS app hangs can finally be fixed with BugSnag

When an iOS app is unresponsive, users encounter an app freeze or app hang. No action can be taken as the user often stares at, or taps frantically on, a frozen screen. App hangs are either fatal or non-fatal.

As the name implies, non-fatal app hangs occur for a short period of time, and the app eventually comes back to life on its own. Because these app hangs are recoverable and less serious, the impact on the user experience is typically lower.

In contrast, fatal app hangs happen when:

  1. The user exits and closes out an app that is frozen in an indefinite app hang; or
  2. iOS decides that an app isn’t going to recover after a set period of time and kills the app

Both fatal scenarios interrupt the user experience and bring an end to the current session, which may result in the user losing data that was entered prior to the app hang. Irritated users may find this situation unacceptable and look for an alternative app or express their frustration with a poor app rating or review (or both).

Today, iOS app hangs are not captured by any other error monitoring or stability management solution. While Apple’s built-in error detection captures app hangs for users who opt-in, developers don’t have access to all the diagnostic information they need to address these issues.

Capture iOS app hangs with complete diagnostics

We are excited to announce that BugSnag now captures and provides complete diagnostics for app hangs or freezes in iOS apps so that you can identify them and rollout fixes quickly.

Since BugSnag provides a distinct error class for app hangs, you can easily filter these errors and set up bookmarks to keep an eye on them. App hangs are grouped by root cause and sorted by user impact so you can determine if app hangs are occurring more frequently and how many users they are impacting, which can help you make data-driven decisions about when to prioritize fixing app hangs. You also have access to complete diagnostics like with every other error BugSnag captures, including stack traces, threads, user interaction breadcrumbs, device level analytics, as well as any custom metadata you are capturing.

Fatal vs. non-fatal app hangs

To reflect the impact on the user experience, fatal and non-fatal app hangs are handled differently in BugSnag.

  • Fatal app hangs are reported by default and contribute to the stability score. Fatal app hangs are reported with “unhandled error” severity. These errors can lower the app’s stability score, which is used to measure app health. For engineers familiar with Android, we are treating app hangs in the same way we treat ANR (Application Not Responding) errors.
  • Non-fatal app hangs do not count towards the stability score. These errors are reported as “handled errors” due to their lower severity. If desired, teams can enable capturing of non-fatal app hangs, configure the time period that counts towards this error type (two seconds is recommended), and override the default to include them in the stability score.

From startups to enterprises, every organization with an iOS app benefits from understanding app hangs. With visibility into frequency and causes, developers can prioritize and fix these errors with speed and precision to provide stronger end user experiences.

Start capturing iOS app hangs

Simply upgrade to the latest version of BugSnag’s iOS notifier to start gaining visibility and diagnostics into iOS app hangs. Every fatal app hang captured will automatically start appearing in the BugSnag dashboard. To learn more about app hangs and capturing fatal vs. non-fatal ones, read our documentation.

If you’re new to BugSnag, start a 14 day free trial or request a demo to see this and other capabilities of our stability management platform in action.

BugSnag helps you prioritize and fix software bugs while improving your application stability
Request a demo