Skip to main content

What is recorded

A terminated app cannot send anything, so a crash and the session it ended are reported at the next launch, with the release, build and OS of the run that crashed. Terminations without a crash report are usually the system ending the app: out of memory, or the watchdog. Release health counts them as abnormal exits, separately from crashes.

Issues

An issue is a group of occurrences with the same cause. Every kind above becomes issues: an issue’s kind is crash, error, hang, anr (Android) or abnormal_exit, and the read API filters by it. Each occurrence keeps its session, so an issue shows the breadcrumbs, logs and requests before each failure. An issue lists:
  • its occurrences, and the users and sessions affected;
  • when it was first and last seen, and in which releases;
  • the devices it affects;
  • the stack of its latest occurrence, symbolicated with function, file and line when the symbols are uploaded, next to the stack as the device sent it.

Grouping

Apsio computes a fingerprint for each occurrence on the server. Occurrences with the same fingerprint in the same app are one issue. Line numbers are left out so that an unrelated edit in the same file does not split an issue. Before symbols arrive, a frame is its binary and offset; when they arrive, the occurrence is symbolicated again, grouped by function name, and may move to another issue. The issue’s id is its fingerprint. The grouping rules are versioned: a new version never moves the occurrences you already have. Each occurrence records how it was grouped, as grouping with a version and a reason:

Your own fingerprint

For handled errors, a fingerprint you choose replaces the default. Use it to group errors that come from different places, or to split errors that look alike:
A fingerprint applies to one app. It cannot be set for crashes.

Missing symbols

When an occurrence arrives before its symbols, symbolicated is false and missing_debug_ids lists the debug id of every image in its stack without symbols, Apple’s system frameworks included. The images of your own app to upload, per release, come from GET /v1/projects/{projectId}/releases/{release}/missing-symbols. See Symbols and dSYMs.