Firebase crashlytics not registering all crashes

Viewed 841

I have implemented firebase crashlytics in my unity game to receive the reports of the crashes and It is working half-fuel. It is reporting some crashes but for some reason,It is not reporting all crashes. I have numerous report from users crashing at the same part of the game but I am unable to reproduce the problem or find it in the crashlytics report.

Is anything more that I can do in order to receive all of the crashes?

1 Answers

There are two types of crashes that Crashlytics will track: fatal and non-fatal. For the most part, crashes on iOS and Android are fatal crashes (the entire app/game crashed and the user is looking at their phone's home screen). On Unity, Crashlytics actually registers a LogCallback and reports uncaught exceptions. Typically these do not fully crash your game, but still indicate bad and crashy behaviour. I've written a two part series on what different crashes look like there.

So the first (easy) answer is to make sure you're showing "non fatal" crashes.

The second answer is a little more difficult. A crash may occur in native code (I've typically forced a stack overflow to simulate this or run Unity out of memory, but there's a ForceCrash call I've seen developers using recently). How this gets reported gets a little hairy, partially because C++ is not officially supported by Crashlytics.

In my experience, these tend to show up as fatal crashes but poorly labelled. On iOS, they appear symbolicated but tend to select the wrong part of the stack frame to display. On Android I tend to see just a non-symbolicated crashed report (something that looks like it could be run through ndk-stack).

If you don't see your crash when you're looking at non-fatal crashes, try looking at just fatal crashes and seeing if you see anything that looks like a raw crash log. Technically Crashlytics can symbolicate native symbols on iOS and Android, and the team is aware that there are issues. If this represents your experience, I'd recommend filing an issue on GitHub or with Firebase Support to see if there either is an issue with your setup or if this is another use case that needs to get tracked.

Related