10 reasons not to use bitdrift: 4, you only care about crashes
If your app is 99% crash-free, does that mean 99% of users are happy? Almost never. Yet mobile teams obsess over crash-free rates. In this post, the fourth in a series investigating reasons not to use bitdrift, we’ll discuss why crash-free rates and crash reporting tools alone do not constitute a mobile observability strategy.

For a long time, Mobile Observability wasn’t really a thing people talked about. All dev teams had was backend monitoring, which doesn’t tell you much about how users are experiencing your app, and crash reports, which only capture the rare issues that cause the app process to stop. If crash rates were below 1% of sessions, that meant 99% of customers were happy, right? Wrong. Let’s discuss some of the reasons why.
Focus on p99s, not crashes
If “crash-free rate” is your primary health metric, you’re effectively blind to what’s happening in 99% of your user experiences. To give you an idea of what you might be missing, here are a few examples.- A user abandons their cart because checkout is slow
- A user backgrounds the app because the search hangs
- A user switches streaming services because playback stutters
- A gamer rage-taps through a soft lock and uninstalls
Sampling impacts crash rates, too!
Can you trust your stability metrics if your crash reporting tool is sampling? Short answer, no. Let’s look at some real data again. The following image shows an Instant Insights stability dashboard from one of our customers with millions of daily active users (DAUs). This customer’s legacy crash reporting tool consistently reported crash-free rates above 99%. Why? Because it only calculated that rate on a 5% sample. For a customer of this size, 1% represents hundreds of thousands of user sessions per day.Built for the edge cases
bitdrift doesn’t optimize for averages. It optimizes for outliers. The Capture SDK generates synthetic metrics on the device and sends only the telemetry you need for real-user monitoring and alerting, without the overhead of sending all logs. This is how bitdrift gives you fully unsampled dashboards without impacting performance (and therefore your users’ experience). This means you catch every slow request, every hang, every retry storm, every degraded session, and every weird device/network combination. When something happens only to the 99th percentile, you can catch and debug it. Let’s move on to why debugging can suck with crash reporting tools.How bitdrift does crash reporting, properly
Just in case you were starting to think bitdrift doesn’t do crash reporting, let me be clear: bitdrift does crash reporting. Only, it does it better. There are three very common complaints we hear when talking to mobile devs about their crash reporting tools:- They constantly have to context switch between multiple tools while debugging issues
- They can’t reproduce crashes in rare cohorts
- They don’t have enough context beyond stack traces to debug a crash
Author
Iain Finlayson