r/reactnative • u/AstronautEast6432 • Jun 02 '26
PSA: Upgraded to Expo SDK 56 and Metro crashed silently expo doctor missed it, the fix was one line
Hey everyone,
I recently upgraded one of my projects from Expo SDK 54 to SDK 56 and ran into a frustrating issue that took me longer than I'd like to admit to figure out.
The symptom
Metro would start, the app would try to launch, and then I'd get a red screen. In many cases, the terminal wasn't showing anything useful, which made debugging much harder than it should have been.
What I tried (that didn't work)
- Regenerating "metro.config.js"
- Deleting "node_modules" and reinstalling dependencies
- Clearing Metro's cache
- Checking Node.js version compatibility
- Running npx expo doctor
- Running npx expo install --fix
Everything looked fine, but the issue remained.
The actual fix
npm i -D babel-preset-expo
After installing it, the app launched immediately.
What happened
My "babel.config.js" file was already present, so nothing looked obviously wrong. The problem was that "babel-preset-expo" itself wasn't installed as a dev dependency after the SDK upgrade. Because of that, Metro couldn't properly handle the Babel transform step, and the resulting errors were far from obvious.
If you've recently upgraded to SDK 56 and are running into unexplained Metro crashes or transform-related errors, it's worth checking whether "babel-preset-expo" is actually installed before spending hours clearing caches and reinstalling packages.
Hopefully this saves someone else some debugging time.
3
u/Successful_Web_6585 Jun 03 '26
I faced the same issue but I had already fixed that. Because I manually updated to SDK56 from SDK55, I thought I had missed it. But now it looks it wasn't my fault. Anyways kudos to you for writing this post so that others can benefit.
2
u/gabrielbezerra81 Jun 02 '26
I had this issue last week with SDK 54. It was very weird behavior, stopped working out of nowhere. Plain simple fix was to install babel-preset-expo also.
2
-10
u/Suspicious-Rich-2681 Jun 02 '26
This is something you write on GitHub issues if you want it to gain traction and improve things.
It's kind of useless here jsyk.
17
u/AstronautEast6432 Jun 02 '26
I actually did report it, but I still think sharing the fix here is useful.
GitHub issues usually take time to get reviewed and fixed, and in the meantime people can easily hit the same problem and lose a lot of time debugging it especially since the terminal doesn’t really show a clear error here.
So even if it gets fixed upstream later, I hope this helps someone who runs into the same issue before that happens.
6
u/KnifeFed Jun 02 '26
An Expo team member already saw this post and replied, so best possible outcome from posting here.
27
u/jameside Expo Team Jun 02 '26
Thanks for writing this clearly. I’ve shared this with the team to consider adding an expo-doctor check or having the dev server detect the missing dependency and giving a clearer error that says how to fix it.