Expo 49.0.13 stuck on splashscreen after installing realm and creating EAS build

I have been trying to implement Realm into my react-native expo application. I am currently using expo sdk 49.0.13. When installing the realm package and creating a new EAS build, it gets stuck on the splash-screen after seeing it has been bundled 100%.

On the internet I have seen people mention possible conflicts with react-native-firebase/app and react-native-reanimated, but I haven’t been able to solve the problem, as creating a new build every time makes it a bit more complicated.

Does anybody have any suggestions of how to solve this, or a strategy to find the root of the problem?

Thanks in advance :slight_smile:
Stef

1 Like

Do you have remote debugging active? This can sometimes cause issues.

I do not have the remote bugging active. I tried different versions of Realm such as 11.10.2, but that also doesn’t work. When I repeatedly reload the app, it sometimes gets past the splashscreen and works. Running npx expo start --no-dev --minify doesn’t change anything.

Found the issue. I overlook the “developmentClient” in eas.json.

Yeah we have the exact same issue, it seems like Realm doesn’t work with Expo 49 and development builds

@Alex_R_N_A Expo base SDK doesn’t include Realm, and thus won’t work with Expo Go, which only contains a limited subset of all the React Native third party packages. You must use the expo-dev-client to add Realm to Expo.

Realm works fine with Expo 49. @realm/expo-template - npm

@Andrew_Meyer For me the template is not working smoothly when I build with EAS. I did build the template with EAS and when the bundling is stuck at 100% I still have to press reload a lot of times to get lucky and enter the app. This is happening when I am running the development build on my physical iPhone.

3 Likes

My app (a fresh app created using the template mentioned by @Andrew_Meyer @realm/expo-template - npm) also gets stuck while bundling or loading from metro with a blank screen.

It either displays Bundling: 100%... or a brief Loading from metro... with a white screen. This is reproducible by using the Realm expo template as follows:

Steps to reproduce:

  1. Use NodeJS v20.9.0 (LTS) and NPM v10.1.0 (nvm use --lts)
  2. npx create-expo-app@latest MyAwesomeRealmApp --template @realm/expo-template
  3. Create a new iOS development client build with EAS
  4. Start the expo dev client server: npm start
  5. Run the built dev client build on my iPhone.
    • The first time it runs (or if npm start -- --clear), it builds up to 100% and stops with the message Bundling: 100%..., all while showing a blank white screen (the splash screen).
    • Then press r from the server to reload the app, it changes from the 100% bundled message to Loading from metro... and then message disappears but still displaying the blank white screen (the splash screen).
    • Press r again, same thing happens as mentioned in the step above.
      • However, for some magical reason, if i keep pressing r to reload the app, it does eventually go to the home screen and everything appears to work fine (even the fast reload on code change), BUT manually reloading again we find ourselves with the white screen issue all over again (repeat from second point in step 5)

Note
This only appears to affect iOS dev client builds (physical iPhones and simulators). Android builds don’t have this issue for me.

4 Likes

Yup exact same thing here. Hitting r over and over will eventually get it to load (sometimes), but that first build will always be stuck at Bundling 100%.

I have been having this issue for months. With a simulator it will eventually start working after reloading many times, but it’s not reliable. Physical device is much harder to get working. To get the app to run on a physical device again I have to delete the app and reinstall the development build. After changing a couple files it gets stuck again and have to repeat the process. Has anyone found a real solution for this?

Bumping this as an ongoing issue

iOS dev-client builds get stuck on ‘Bundling 100%’ before eventually timing out. Android dev-client builds seem to run fine.
expo: 49.0.13
realm: 12.5.0
@realm/react: 0.6.2

Hope this is resolved soon as this is hampering a large part of our dev work

Hey all, sorry for not responding earlier. I have reached out to Expo to see if they have any clues why this can be happening. In the meantime, please refer to this thread. There may be some insights on how to fix this.
Can anyone confirm for us that this is indeed due to having realm installed in your app, or is this purely an Expo issue?

1 Like

It certainly seems to be because of Realm. As soon as I removed it, everything built just fine. Ended up using Pouch/CouchDB in our project because we just couldn’t get Realm to work unfortunately, but confirming this for others.

1 Like

Was able to reproduce this by building directly out of Xcode and scanning the QR code from the bundler. I’ve sent the reproduction to my contacts at Expo and hope they can assist in determining the cause. Sorry for the inconvenience. I’ll post any updates as soon as I can.

2 Likes

UPDATE: I opened an issue for Expo and they have prioritized a fix. Expo has recently merged an update that should fix this issue. Hopefully that will be released soon!

2 Likes

Still facing the issue.
Steps:

  1. Installing from xcode
  2. Scanning QRCode
  3. Getting stuck on white screen after splash screen

Please need the fix asap

@M_Abdur_Rafey_N_A as stated in the previous post, the fix has already been made by Expo and will be released hopefully in the near future. Our hands are tied, but if you want to comment on the fix PR, it might help speed up the release process.

1 Like

How did PouchDB go? Migration? Hot Reloading? ORM?

Everything works well!

Using a CouchDB cluster I’m hosting on render.com through Docker for syncing.

And using op-sqlite with an adapter for websql I made for PouchDB.

Hot reloading works totally fine but haven’t looked into migrations - haven’t needed them.

As for ORM, It’s just websql underneath, so I imagine you can use any ORM that’s compatible, but I personally have no problem with PouchDB and the use-pouchdb hooks.

Happy to make the adapter public.

I am no longer having this issue after upgrading to Expo 50. Thank you @Andrew_Meyer for pushing this through!

1 Like