Skip to content
Codeskop

Product features

Everything you need to understand and improve your software.

Codeskop connects errors, network activity, user journeys, releases and analytics across mobile, web and backend, so you find issues faster and build better experiences.

  • No credit card required
  • Set up in minutes
  • Works across your stack

Crash reporting

Crash reporting for Android, Flutter and web apps

Every crash with its full stack trace, the device and release it hit, and the users it affected, so you can fix the ones that matter first. Included on every plan, free plan too.

Plan: Every plan, including Free · See pricing

Crash report
java.lang.NullPointerException    at com.example.app.ui.UserProfileFrag...    at android.app.Fragment.performCre...    at android.app.FragmentStateManager...
Pixel 7
Android 14
1.2.0 (324)
Apr 16, 10:24 AM

Crash Reporting details

What you get

  • Every uncaught crash

    Uncaught Kotlin and Java exceptions on any thread, Dart errors in Flutter, and uncaught errors and unhandled promise rejections in the browser.

  • Native crashes

    Crashes in native (C/C++) code, recorded by Android itself on Android 11 and higher and reported on the next launch.

  • Handled exceptions

    Report errors you recover from with recordException(), so you can see how often they really happen.

  • Context on every crash

    Device model, OS version, app version and build, and the user you identified (or an anonymous install ID).

  • Grouped, with user impact

    Crashes are grouped into issues with the number of users affected, so the worst problems rise to the top.

  • Never sampled or lost

    A crash is written to the device before the app dies and uploaded at the next sync. Crashes are never sampled away or dropped for space.

How it works

  1. 1

    Add the SDK

    One Gradle dependency on Android, codeskop_tracker on pub.dev for Flutter, or @codeskop/tracker on npm for the web.

  2. 2

    Initialize it

    On Android, add your public key to AndroidManifest.xml and the SDK starts itself; or call init in a line of code.

  3. 3

    See crashes as issues

    Crashes appear in the dashboard grouped as issues, with the stack trace, device, release and users affected.

Platform support

Crash Reporting by platform
AndroidCrashes, native crashes (Android 11+), handled exceptions
FlutterDart errors and native crashes
Web & ReactUncaught errors, promise rejections, React render errors
Kotlin Multiplatform & iOSEarly access betaCrashes and handled exceptions
Server (Python, Node.js, Go, Java, PHP)Unhandled and handled exceptions in requests, jobs and threads

Questions about crash reporting

Is Codeskop crash reporting free?

Yes. The Free plan includes crash and exception capture for 10,000 events a month with 7-day retention (as of October 2026). Free also sends email alerts for its project; paid plans add ANRs, network capture and Slack, WhatsApp and webhook alerts.

Does Codeskop work alongside Firebase Crashlytics?

Yes. Codeskop chains onto whatever crash handler was installed before it and always passes the crash along, so Crashlytics keeps working. Codeskop never swallows a crash.

Does it capture native (NDK) crashes on Android?

Yes, on Android 11 (API 30) and higher. Android records why the process ended, and the SDK reports it on the next launch with Android's description of the exit.

Are crashes ever sampled?

No. Sampling settings never apply to crashes, and when the on-device queue fills up, older low-priority events are removed first. Crashes stay.

Do exception messages leave the device?

Not by default on Android and web. Messages often contain user input, so they're redacted before sending. You still get the exception class and the full stack trace.

ANR monitoring

ANR monitoring for Android apps

Find the freezes that make Android offer to close your app. Codeskop reports every ANR with the app version and device it hit, with nothing to set up beyond the SDK.

Plan: Starter and above

ANR event
Type          ANRExit reason   Input dispatching timed outSource        ApplicationExitInfo (Android 11+)App version   2.4.1 (324)Device        Pixel 7 · Android 14

What you get

  • Recorded by Android itself

    On Android 11 and higher the SDK reads Android's own exit records, so you see the same ANRs your users saw, each reported once.

  • Zero runtime cost

    On modern devices nothing runs while your app is in use. The records are read once, in the background, at startup.

  • Covers Android 7 to 10

    Older versions get a small, low-priority watchdog that flags the main thread when it stays blocked for about five seconds.

  • The context to find the cause

    Every ANR carries the exit reason, app version, device and user, so you can spot the releases and devices that freeze.

  • Flutter apps too

    ANR detection also runs for Flutter and Kotlin Multiplatform apps on Android.

  • Never sampled

    ANRs are never sampled away or dropped for space. Turn detection off per project from the dashboard if you ever need to.

How it works

  1. 1

    Add the Android SDK

    ANR monitoring starts with the SDK. There is no extra dependency or code.

  2. 2

    Ship your release

    On Android 11+, ANRs are reported the next time the user opens the app; older versions report from the watchdog.

  3. 3

    Group and fix

    Group ANRs by app version, device and screen, and move the blocking disk, database or network work off the main thread.

Platform support

ANR Monitoring by platform
AndroidAndroid 11+: OS exit records · Android 7–10: watchdog
FlutterOn Android
Kotlin MultiplatformEarly access betaOn Android
Web & ReactNot applicable

Questions about anr monitoring

What is an ANR?

An ANR (Application Not Responding) happens when an Android app's main thread is blocked long enough that Android offers to close it. Users see an "app isn't responding" dialog.

What ANR rate does Google Play consider bad?

Android vitals flags a user-perceived ANR rate above 0.47% across all devices, or above 8% on any single device model.

Which Android versions are covered?

Android 7 (API 24) and higher. Android 11+ uses Android's own exit records; Android 7 to 10 use a lightweight main-thread watchdog.

Do ANR reports include a stack trace?

Not yet: in Android SDK 0.3.0, ANR reports include the exit reason, app version, device and user, but no main-thread stack trace.

Which plan includes ANR monitoring?

Starter and above. Upgrading turns it on from the next app launch, with no new release.

Platforms

One SDK. Every platform.

Codeskop works across your stack, from mobile and web to backend services. What each SDK captures

It all connects

From issue to insight, in one production story.

Errors, user journeys, network activity and releases are linked, so you go from symptom to root cause in minutes.

  1. An issue occurs

    A crash or error is captured with its full context.

  2. See who it hit

    How many users, which devices and which release.

  3. Check the requests

    The failing and slow API calls around it.

  4. Check the release

    Whether the latest release made it worse.

  5. Investigate and fix

    Assign it, ticket it, or get a proposed fix.

Ready to improve your software?

Start building more reliable experiences today.

Free plan, no credit card. Your first crash report can arrive in minutes.