Skip to content

Rollbacked updates and CodePushInvalidUpdateException not reflected in RevoPush failure metrics #41

@arryanggaputra

Description

@arryanggaputra

Hi RevoPush team,

We're observing a discrepancy between client-side errors (Sentry) and RevoPush dashboard metrics, and we are trying to understand if this is expected behavior or a reporting issue.

Error observed

Multiple Android devices report the following error in Sentry:

CodePushInvalidUpdateException:
Update is invalid - A JS bundle file named "index.android.bundle"
could not be found within the downloaded contents.

Stack trace:

com.microsoft.codepush.react.CodePushInvalidUpdateException
at com.microsoft.codepush.react.CodePushUpdateManager.downloadPackage(CodePushUpdateManager.java:255)
at com.microsoft.codepush.react.CodePushNativeModule$3.doInBackground(CodePushNativeModule.java:432)
at android.os.AsyncTask$3.call(AsyncTask.java:394)

We also frequently see the following log on affected devices:

[CodePush] An update is available, but it is being ignored due to having been previously rolled back.

RevoPush dashboard statistics

For this release we see:

Active: 91
Downloaded: 46
Installed: 91
Failed: 2

However, the number of Sentry events related to the exception above is significantly higher than Failed: 2.

Questions

We're trying to understand how failures are reported in RevoPush:

  1. When CodePushInvalidUpdateException occurs during downloadPackage, should it be counted as a failed update in RevoPush metrics?
  2. If an update is installed but later rolled back automatically by CodePush (because notifyAppReady() is never reached or the app crashes), does that increment the Failed counter?
  3. Is it possible that a device encounters this error before the failure is reported back to the RevoPush server, causing it to be missing from the dashboard metrics?

Hypothesis

Based on the logs, it seems possible that:

  • the update download completes
  • the package validation fails (index.android.bundle missing)
  • the client rolls back locally
  • but the failure event may not be reported to RevoPush

Which could explain why the Sentry error count is much higher than the Failed metric.

We'd appreciate clarification on whether this behavior is expected or if it might indicate a reporting issue.

Thanks!

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