Notes
Native versus JS crash queues
Service Craftcore · June 2026
Hybrid apps often run two Crash Analytics Monitoring pipelines. Native fatals go to one owner. JavaScript exceptions go to another. The user sees one freeze. Thursday night then pages twice, or worse, each team assumes the other has it.
A merge table is dull and effective. Columns: user-visible symptom, native signature, JS signature, single incident name, owner. Rows are written when you still remember the last incident, not during the incident. If the JS error is a red herring around a native watchdog, the table says so. If the native crash is a bridge asserting after a JS timeout, the table says that too.
Do not unify the raw streams if the tools cannot share grouping keys. Unify the incident. On-call cares about incidents. Crash Analytics Monitoring cares about stacks. Pretending they are the same object is how duplicate tickets are born.
ANRs belong on a third line of the table. They are not native crashes with worse manners. The ANR and watchdog desk exists because squads keep filing them as “crash-like.” They are not. The user still leaves the app; the owner and the fix often live in main-thread work, not in a null dereference.