iOS store build hangs on startup

We rolled out a new version of our app to customers and found that the update hangs on startup in the iOS build. It never loads our JS bundle, so we don’t have amplitude/sentry logs to see who is affected, but right now our estimate is that all iOS users will hang indefinitely.

We didn’t see this behavior in our canary app through TestFlight or in the official app through TestFlight, so we’re asking for understanding what could’ve caused this to help us test more in the future.

The primary changes to this store build were:

  • Updating from SDK 27 to SDK 29
  • Android adaptive icon assets
  • Hardening of our manual update logic
  • Changing our bundle’s config to add
"updates": {
  "checkAutomatically": "ON_ERROR_RECOVERY",
  "fallbackToCacheTimeout": 0

From what we’ve observed, the expo wrapper isn’t loading our bundle unless the user uninstalls and reinstalls the app from the store. And that fixes it every time.
We considered that the change to updates config might be persisted by the expo wrapper and it could’ve been checking for an update indefinitely. With that theory, we tried publishing an OTA update but that had no effect at all.

Any suggestions on resolving this without an uninstall and reinstall for all iOS users?
Any theories on what the expo wrapper is hanging on?

Note: We haven’t rolled out to Android, but so far the Beta group hasn’t seen any hangs on startup

Hi @vivintsolar - I’m really sorry for the trouble here but appreciate your detailed post. I just dug into this and found a bug where the version of the app embedded in the IPA would fail to load under a very specific set of circumstances – updating from/to these SDK versions, and changing the updates configuration in the way that you have. While I haven’t reproduced the hanging you’re reporting, I suspect the underlying issue is the same, and the hanging might happen if the device has a poor internet connection, for example.

We have a fix in flight, but unfortunately you’ll need to submit a new update to the App Store in order to fix this. Is your project detached, or did you build your IPA using exp build:ios?

Again, just want to apologize for this – this is the kind of serious bug that we try our hardest to avoid, but unfortunately sometimes they slip through. We’ll do our best to get this fixed for you as soon as possible. Thanks again for all of the detailed information in your post.

@esamelson Thanks for the response. We appreciate the speed.

We haven’t detached yet and we still build with exp build:ios.

When will the fix be ready for us to use?

Hi @vivintsolar - we’re working on getting it deployed right now. I’ll let you know when that’s done. At that point you’ll just need to re-run exp build:ios.

Any update on your deploy?

Hi @vivintsolar - sorry for the delay. Yes, the deploy finally went out late last night. Please give it a try and test installing over an old version, and let us know if the issue is fixed!

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