Repository navigation
fix(appupdates): stop reporting device-side Play failures from the optional update check - #1981
Merged
Merged
Conversation
…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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The optional update check from #1771 sends every Play Core failure to Bugsnag, because
FlexibleUpdates.check()logs it withtrace(error = …), andtracealways ends inErrorUtils.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). Bugsnag6ade0af989c0031619b1aa33.RemoteException: AppUpdateService : Binder has died.: the Play Store process died mid-call. Bugsnag6ad9111fdbd69358a893fc1b.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-4for a malformed request, since that one is the app's fault. The check also rethrowsCancellationExceptioninstead of logging a cancelled check as a failure.The forced-update check in
GooglePlayAppUpdateControlleris unchanged, so a failed forced check stays visible.FlexibleUpdatesTestgets three tests, one each for-6not reported, Binder death not reported, and-4still reported.