| name | report-crashes |
| description | Forward FireCrasher-caught exceptions to a crash reporter (Crashlytics, Sentry, etc.) while still recovering the app. Use when wiring crash reporting, logging non-fatals, or "make sure we still get crash reports after recovery". |
Report crashes while recovering
FireCrasher keeps the app alive, but you still want every crash recorded.
The onCrash handler gives you the throwable before recovery runs — log it
there, then call recover(). Because the app survives, these arrive at your
reporter as non-fatal / handled exceptions, not fatal crashes.
Log, then recover
installFireCrasher {
onCrash {
FirebaseCrashlytics.getInstance().recordException(throwable)
recover()
}
}
The order matters: report before recover() so the report is captured even
if a subsequent recovery attempt kills the process.
Add context
retryCount (in onCrash scope) tells you how many times FireCrasher has
already tried to recover this crash — useful signal on a report:
onCrash {
FirebaseCrashlytics.getInstance().apply {
setCustomKey("firecrasher_retry", retryCount)
recordException(throwable)
}
recover()
}
Don't forget out-of-process deaths
onCrash only sees JVM exceptions on threads FireCrasher controls. Native
crashes and ANRs never reach it — report those separately via the
detect-native-crashes-and-anrs skill (onPreviousProcessExit).