Jump to content

Google halts Chrome 79 rollout on Android after bug deletes user data


Recommended Posts

Google devs "forgot" to move some user data during the Chrome 78 to Chrome 79 update process.




Google has halted the rollout of Chrome 79 on Android after mobile app developers reported a major bug that was deleting user data and resetting mobile apps.


The bug occurred during the update process from Chrome 78 to Chrome 79. In Chrome 79, Google developers changed the location of the Chrome directory.


In a bug report filed last week, Google developers admitted to making a mistake with this operation and forgetting to move the contents of localStorage or WebSQL into the new Chrome 79 directory, making the data inaccessible for all users.

localStorage and WebSQL are widely used in mobile apps

Both localStorage and WebSQL are storage mechanisms that allow a website or web app to store data on a user's device, inside a user's Chrome profile directory.


While some websites use localStorage or WebSQL, most prefer to use dedicated database servers to store user data on the server-side.


However, localStorage and WebSQL are widely used on mobile devices, and especially by mobile app developers.


These days, many Android apps are nothing more than a website loaded inside the WebView component -- a stripped-down version of Chrome.



These apps heavily depend on mechanisms like localStorage or WebSQL to save settings and user data locally, instead of using a separate and bulkier SQLite database.


When Chrome 79 started rolling out, these apps lost access to all the files and data saved inside the old Chrome 78 localStorage and WebSQL folders.


App users lost data, settings, files, and even access to their accounts.


"When I say 'broken,' I mean that their encrypted login information has been wiped and they can't remember their credentials (and resetting them are practically impossible in the case of our app)," said the developer of a mobile cash management app. In his case, over 250,000 users have been affected already, with two million more facing a similar problem in the coming days.


However, he is not alone. There are countless other Android app developers who are facing similar issues.


And for good reasons, app users are getting angry. Unfortunately, they're getting angry at the wrong persons -- namely, the app developers, not knowing this is a Chrome issue.


"My app currently get[sic] review bombed with 1-star ratings because all users lose[sic] currently all stored data," said another app dev on Reddit.

A fix is not 100% guaranteed to save restore user data

Chrome 79 was released on Tuesday, December 10. A first bug report was filed on Thursday, and Google stopped the Chrome 79 rollout on Android on Saturday. Unfortunately, the update already reached around 50% of the Android userbase, meaning it already caused quite a lot of breakage.


Google developers are currently working on an update that fixes the data migration process, but for many, this might be too late.


Even Google developers don't know if the older localStorage and WebSQL files were left behind, or the Chrome update process wiped the data. In some cases, "cleaner aps" might have deleted the data after the update operation.

Further, moving the old files to the new location might end up overwriting new files the user has created in the meantime, leading again to data loss.


A solution for the bug is still being discussed on the Chromium bug tracker.



Link to comment
Share on other sites

Chrome’s data disaster: Browser update wipes out Android app data

Google changed where Chrome stores data. Chrome handles data for HTML apps. Uh oh.

A man wears soft rings that spell out CHROME.
Enlarge / Someone really likes Google Chrome.

Google's latest Chrome update is causing a headache for users and developers of some Android apps. Chrome 79, which is rolling out across desktop and mobile OSes, has been causing data loss for some other seemingly unrelated Android apps. Thanks to this bug, specifically on Android, updating your browser can now do something like wipe out the data in your Finance app.


The connection between Chrome and Android app data might not be obvious, but Chrome on Android isn't always just the browser that starts up when you press on the Chrome icon. For some versions of Android, the Chrome app can also provide the built-in HTML render for the entire OS. Apps can call on the system render to display in-app Web content (the API is called "WebView"), and, in this case, an instance of Chrome would seamlessly start up and draw HTML content inside your app. Whether you want to call them "HTML apps" or "Web wrappers," it's not uncommon for apps to basically be only a WebView. These apps just turn on and load a webpage, and the Web wrapper provides native Android features like an app drawer icon, full-screen interface, and Play Store distribution. These apps look and work mostly like native apps from a user's perspective, and it's hard for even technical users to tell the difference. Cross-platform development is a lot easier when you use HTML, though, since HTML code works everywhere.


The data loss happened because Google changed where Chrome 79 stores profile data without entirely migrating the old data. WebView-based apps can store data through APIs like localstorage, WebSQL, and indexedDB, and apps that use these APIs will suddenly stop finding their data after the user upgrades to Chrome 79. The data isn't deleted, it's just misplaced. But to a user, there's no difference. Their favorite HTML-based app will reset itself to a freshly installed state, and their data won't be visible. By default, app updates on Android happen automatically and without user interaction, so for most users, their app will just wipe itself out and they won't know why.


If you want to get technical (and, of course, we do), only Android versions 7, 8, and 9 use the "Chrome" app for the system HTML render. Google has long supported the reasonable stance of updating the Android system HTML-renderer through the Play Store, but it has flip-flopped back and forth on whether using the user-facing Chrome app for system HTML duties is a good idea. Android 5 and 6 used a separate package called "Android System WebView" for Web content, which is very close to Chrome, as it's based on the Chromium codebase. After three versions of using Chrome, Google went back to the purpose-built Android System WebView app for the latest version, Android 10, saying that the Android System WebView should have "fewer weird special cases and bugs." In this case it wouldn't have helped, since both Chrome 79 and Android System WebView 79 have this data-loss bug. The point is that the offending system Web renderer app will change depending on your Android version.


Google may want to (but shouldn't) heed some of the Internet's favorite advice: Don't read the comments.
Enlarge / Google may want to (but shouldn't) heed some of the Internet's favorite advice: Don't read the comments.

Developers are not happy about their app data suddenly disappearing. One developer said the bug was "definitely a failure of the QA. A disaster really. I don't know how many clients will be affected, could be millions and millions." Another said, "This is a catastrophe, our users' data are being deleted as they receive the update." "Please roll [this change] back ASAP," begged another developer. "We have years of history data lost."


The Chrome team has a serious mess on its hands now, since across the ecosystem, users on Chrome 78 have apps that use storage location #1 and users on Chrome 79 have lost all their data and started over using storage location #2. How do you go about fixing this? Chrome Tech Lead Manager Changwan Ryu warned in the bug comments that a fix would be "a very destructive change" since Chrome 79 had "already been rolled out [to] 50% [of users], and data cannot be merged." Google halted the rollout, but as of Friday, Ryu said a fix would take "at the minimum... 5-7 days." So the two options available to Google are to roll back to the Chrome 78 behavior and delete the last week-plus of user data, or keep the Chrome 79 behavior and delete potentially years of data. 


One Chrome developer, Tobias Sargeant, asked the crowd of developers: "Are you aware that you can test with beta versions of webview? This change was made in beta 6 weeks ago, and had the issue been picked up at that point we would have been able to address it before it significantly impacted users." Both Chrome and the Android System WebView have "stable," "beta," and "dev" versions freely available in the Play Store, and apparently no one caught this change in time. 


As for an actual fix, another Chrome developer, Richard Coles, told the group the team will migrate the old Chrome 78 data to the new Chrome 79 location and rename the past week of Chrome 79 data allowing for possible data recovery later. "This means that users who have used the current version and lost access to their old data will get their old data back at the cost of losing access to data newly created since the original M79 update," Coles said. 


Not all developers are happy with losing the last week of data, with one saying, "Our app collects financial/transactional data (invoices, credits, etc) and absolutely cannot revert to the old data. Our users have assumed their unprocessed data has been lost and have already re-keyed in transactions that they collected while offline. There's now been 5 days worth of new transactions." Coles replied to the developer by saying, "We're sorry that this is going to cause an issue for you, but different apps are in different positions here and no choice is going to be ideal for all of them." He added that the Chrome update wouldn't delete anything, and the developer could create some kind of merging function for their app data.


For now it seems like the fix has hit Chrome Canary, and it should start moving up the Dev, Beta, and Stable channels.



Source: Chrome’s data disaster: Browser update wipes out Android app data (Ars Technica)  

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Create New...