Skip to content

fix(appupdates): stop reporting device-side Play failures from the optional update check - #1981

Merged
bmc08gt merged 1 commit into
code/cashfrom
fix/appupdates-quiet-play-failures
Nov 8, 2026
Merged

bmc08gt merged 1 commit into
code/cashfrom
fix/appupdates-quiet-play-failures

Conversation

@bmc08gt

@bmc08gt bmc08gt commented Nov 8, 2026

Copy link
Copy Markdown
Collaborator

The optional update check from #1771 sends every Play Core failure to Bugsnag, because FlexibleUpdates.check() logs it with trace(error = …), and trace always ends in ErrorUtils.handleError. Two of these have been filed from 2026.10.4, both handled and ignored, with "Failed to check for an optional update" as the last breadcrumb:

  • InstallException -6: Play won't download because of the device's state (low battery, low disk). Bugsnag 6ade0af989c0031619b1aa33.
  • RemoteException: AppUpdateService : Binder has died.: the Play Store process died mid-call. Bugsnag 6ad9111fdbd69358a893fc1b.

The app can't fix either one.

Now those failures, plus the InstallErrorCodes that describe the device or install (API not available, Play Store not found, app not owned), leave a breadcrumb only. Other codes are still reported, including -4 for a malformed request, since that one is the app's fault. The check also rethrows CancellationException instead of logging a cancelled check as a failure.

The forced-update check in GooglePlayAppUpdateController is unchanged, so a failed forced check stays visible.

FlexibleUpdatesTest gets three tests, one each for -6 not reported, Binder death not reported, and -4 still reported.

…tional update check

FlexibleUpdates.check() passed every appUpdateInfo failure to trace(error = ...),
which sends it to Bugsnag. Since #1771 that has filed InstallException -6 (download
not allowed in the current device state) and RemoteException "AppUpdateService:
Binder has died" (the Play Store process died mid-call) from 2026.10.4. Neither is
something the app can fix.

Those failures, plus the other InstallErrorCodes that describe the device or install
(API not available, Play Store not found, app not owned), now leave a breadcrumb
only. Other codes, such as -4 for a malformed request, are still reported. The check
also rethrows CancellationException instead of logging a cancelled check as a
failure.
@bmc08gt bmc08gt self-assigned this Nov 8, 2026
@github-actions github-actions Bot added the type: fix Bug fix label Nov 8, 2026
@bmc08gt
bmc08gt merged commit 68f6f0f into code/cash Nov 8, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: fix Bug fix

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant