Expo apk size grows with each OTA update

I have some Expo apps on Android with total size on the order of 100s of MB. A fresh install is ~70MB total.

I can reproduce conditions where publishing an OTA seems to increase the application data size (looking in Android settings for data usage for the app) every time the app downloads the update. For instance:

First install data: 32KB
First OTA update data: 8.8MB
Second OTA update data: 12.5MB
Third OTA update data: 18.24MB

Each of these OTA updates is the same bundle just being published again.

So far, I don’t think this occurs on iOS.

Is something going on with Android where previous (stale) OTA updates remain on device, so each OTA update just takes up additional memory usage over time? Or I am totally missing something here?

In addition, the app takes up a lot of data in the cache as well - so both the data and cache fields seem to grow over time but I cannot determine what causes the cache to grow yet.

Trying to troubleshoot this to get the app data usage low because this would be a big problem for users if the app ends up taking up 200/300+ MB on device.


Hi @bonham000 - yes, currently we keep the previously downloaded updates on the device. Ideally we’d like to have a better system that keeps only the most recent/safe-to-run updates, but we don’t have that in place yet and it’s not on our roadmap for the near future. However, if you want to open up an issue here so we can track it, that would be great!


Thanks! Just opened an issue about it.

One other question that I mentioned there as well is what will happen if a new binary is pushed to the app stores, will old JS bundles be cleared when a user updates to the new release? If so, this is more manageable to workaround for now since app store updates will help keep the overall memory usage low.

Good question :slight_smile:
Can you post a link to the issue? I’d like to follow along too.

Yes, this is the issue: https://github.com/expo/expo/issues/2896

This topic was automatically closed 15 days after the last reply. New replies are no longer allowed.