Skip to content

Play: user-perceived crash rate 3.64% exceeds the 1.09% bad-behavior threshold #267

Description

@TimeToBuildBob

Play Console flags the app under Technical quality → Bad behavior: user-perceived crash rate 3.64% against Google's 1.09% threshold, which reduces discoverability. Per-version crash clusters from the Play Developer Reporting API, last 7 days (2026-09-07 → 09-14):

versionCode 40 (v0.14.0b2, the bulk of installs)

reports users cluster status
532 91 BackgroundService.onCreateForegroundServiceStartNotAllowedException fixed by #257, shipped in v0.14.1
9 6 AlarmReceiver.onReceiveForegroundServiceStartNotAllowedException fixed by #257, shipped in v0.14.1
57 + 26 1 + 3 libaw_sync.so Rust panic → SIGABRT open, #220
31 + 6 1 Java_net_activitywatch_android_… JNI entry in libaw_server.soSIGABRT open (a Rust panic unwinding across the extern "C" JNI boundary aborts the process)
22 3 libaw_server.soSIGABRT open, same class
16 8 AccessibilityNodeTraversal.findNodeStackOverflowError open (recursive traversal, no depth bound)

versionCode 41 (v0.14.0): no crash clusters; that release's problem was ANRs (#261).

versionCode 33 (v0.12.1, 2023): 324 reports / 61 users on ChromeWatcher.onAccessibilityEvent NPE plus 8 on ChromeWatcher.onInterrupt. The class no longer exists; only the update to 0.14.x fixes those users.

What this means for the metric: the largest cluster by far (541 reports, 97 users) is already fixed in v0.14.1, so the rate should drop substantially as it rolls out. The v0.12.1 stragglers will keep a floor until they update. The remaining actionable work:

  1. Native panics must not abort the process: wrap every JNI entry point in libaw_sync and libaw_server with catch_unwind and return an error object (a Rust panic reaching extern "C" is an abort since Rust 1.81). Fixing the underlying #220 panic is the second half.
  2. findNode / forEachNode: iterative traversal with a depth and node budget instead of unbounded recursion.
  3. Re-check this metric two weeks after v0.14.1 is at 100%.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions