How to upgrade to Expo SDK 55
Product••11 minutes read
Keith Kurak
Engineering
How to upgrade to Expo SDK 55: step-by-step tips, New Architecture migration advice, breaking changes, and troubleshooting for a smooth update.

Expo SDK 55 is here, with support for React Native 0.83.2, and React 19.2. Just like with SDK 54, Android API level 36 and Xcode 16.1 and higher are supported. Also unchanged are the minimum supported operating systems: SDK 55 can build apps for Android 7+ and iOS 15.1 and higher. Check out the changelog to get a full picture of all that’s included. And here’s a short highlight video:
Each SDK undergoes extensive testing and a beta test period, where the Expo team and the community collaborate to find issues that might stand in the way of a fast and smooth upgrade for others. A lot of Expo engineers maintain our own apps and try to upgrade those as soon as the beta is out.
Nonetheless, there’s practically infinite possibilities out there. Every app is unique, and has it’s own complexities that will need to be accounted for when upgrading. Therefore, we wanted to highlight some specific key changes that may affect your upgrade to SDK 55, as well as some evergreen advice when it comes to upgrading to the latest Expo SDK.
Key things to know as you upgrade to SDK 55
We’ve reached the end of the road for React Native Old Architecture
SDK 54 / React Native 0.81 were the last versions to support the Old Architecture. If you adopt SDK 55, you will need to adopt the New Architecture, as well, if you haven’t already. It was already set as the default in SDK 53, so most apps have upgraded. Check out our advice for upgrading to New Architecture below.
Power your SDK upgrade with Claude Code
At Expo, we use Claude Code in our day-to-day work. Based on our experiences, we’ve published some skills to help with common tasks within Expo apps in the expo/skills library. One of these skills is for upgrading to the latest Expo SDK version. In addition to the basics like updating package versions, it handles things like breaking changes, cleaning up outdated configurations, and more.
Within Claude Code on your terminal, run
/plugin marketplace add expo/skills
to add the skills marketplace to Claude, and then
/plugin install upgrading-expo
to install the upgrade skill. Then, after restarting Claude, you can ask it in plain language to upgrade your SDK. If it’s installed correctly, you should see Claude reference the skill as it gets started:
You can also import Expo skills into other agents via
bunx skills add expo/skills
As always, do your work on a separate branch, and review your code before merge and deploy. LLM’s are amazing, but Claude and the Expo upgrade skill can’t be aware of every possible scenario. Human developers are a vital part of this workflow!
Transition period for default projects and Expo Go
Expo Go for the App Store and Play Store will remain on SDK 54 a short window of time following this release, and the default project created with npx create-expo-app will continue to use Expo SDK 54 for consistency.
The Expo Go app is our tool for getting started quickly, it's an educational tool to help you learn to build on mobile. We encourage you to take advantage of this transition period to migrate your project to using a development build, which provides you with everything that you need to build an app that you ship to stores.
During this period, you can install Expo Go for SDK 55 from Expo CLI directly on Android devices. For iOS, you can use the TestFlight External Beta or the new eas go command to create an Expo Go build for SDK 55 and upload it to your own TestFlight team.
expo-av → expo-video / expo-audio
In SDK 55, the expo-av package has been removed. In earlier SDK’s, we have gradually replaced that functionality with the new-and-improved expo-audio and expo-video , so you should upgrade your code to use those instead.
Try Hermes v1 for performance improvements
The new Hermes v1 compiler can offer meaningful performance improvements and may be worth a try in your app. It’s opt-in for SDK 55. In this version, note it may slow down your build time in some cases, due to needing to build React Native from source instead of using precompiled binaries. Learn more about enabling this feature in the SDK 55 changelog.
Tips for upgrading your Expo SDK
We have written up detailed advice for troubleshooting issues found during an upgrade. This includes considerations for both before and during your upgrade, with a list of suggestions, starting with the quickest/easiest to try. We recommend reading the entire guide, but we wanted to highlight a few key items in brief here:
Check the changelog!
Most SDK releases will have a list of known breaking changes, or notable changes where you may need to tweak configuration for a scenario specific to your app. The best time to read the changelog and breaking changes is before you upgrade, so you can make those tweaks before you test, but the next best time to read it is after you upgrade, particularly if you see a compilation error or crash.
Using development builds over Expo Go
Upgrades are best taken when you don’t feel rushed to complete them. As Expo Go automatically upgraded to the latest version after the SDK release on your phone, you may have noticed that your app no longer worked in Expo Go, and felt that you needed to upgrade right away in order to keep working on features.
Development builds help reduce the temperature, giving you time and space to take on an upgrade while not interrupting ongoing feature work. A development build works a lot like Expo Go, allowing you to scan a QR code to work on your code locally without rebuilding. But it’s your own app, so it will not get upgraded when a new version of Expo Go is released.
If you still feel that you need to use Expo Go, know that you don’t necessarily have to use the latest version on the Play and App Stores. You can go to https://expo.dev/go and download previous versions for use on Android devices and iOS simulators. Unfortunately, due to App Store restrictions, this does not work on iOS devices.
Still, another reason to migrate to a development build is because Expo Go is quite limited in how it can replicate your production app, leading to issues where it works in Expo Go but not when you build your production app. Expo Go can run your JavaScript, but it cannot apply most of your app.json / app.config.js configuration, because that would require modifying native code. In short, Expo Go can’t contain nearly everything that’s unique and special about your app. Development builds can. There's plenty of headroom in the Free plan to make some development builds, or you build locally npx expo run:android or npx expo run:ios.
New Architecture advice
Expo SDK 54 was the last SDK to support the Old Architecture. SDK 55 / React Native 0.83 only support New Architecture. Therefore, if you haven’t upgraded to the New Architecture yet, now is definitely the time! A number of the latest versions of major packages, such as react-native-reanimated v4 and @shopify/flash-list v4, only support New Architecture.
Avoid upgrading both your Expo SDK and adopting New Architecture at the same time. This makes it more difficult to isolate any issues. Compared to upgrading your Expo SDK, adopting New Architecture is the bigger change, so any issues are likely related to that- but it will be hard to tell if you upgrade to both at the same time.
We recommend first upgrading to the New Architecture on SDK 54 and then creating a development build. Test that, using our New Architecture troubleshooting guide to help if you run into any issues. After you’ve verified things are working just by upgrading to New Architecture, upgrade to SDK 55 and make a new development build. Now, you’ll just be testing your SDK 55 upgrade in isolation.
Check the troubleshooting guides
We have a landing page of our most popular troubleshooting guides that you can browse depending on your issue. If your issue is an error when building, you’ll want to take different steps compared to a crash or performance issue. Even if you don’t fully get to the root cause, using a tool like ADB Logcat or macOS console to find a native error that the operating system reports from a crash can be very helpful as you engage in further troubleshooting or ask others for help.
Reach out if you need a hand!
We appreciate your bug reports and feedback! The best way to surface an issue is and will always be a Github issue with a minimal reproduction, where you send us a link to a Github repo based on the default project template created with npx create-expo-app , plus just enough code to reproduce the issue.
A minimal reproduction ensures that our team can see exactly what you’re seeing and gives us a way to test that our fix will work for you. Even if that seems like a lot to do, often spending 15 or 30 minutes trying to make a minimal reproduction is more effective than hours spent debugging on your actual app, where there are a lot of moving pieces and it’s more difficult to isolate issues.
We also understand the value in discussing an issue in the moment, even before you’re ready to try to reproduce it. Other developers may be experiencing the same thing and already have an answer. Discussions about issues on Discord, Reddit, Bluesky and elsewhere can result in a sort of collaborative virtual rubberducking where we find the answer together while talking through it.
We encourage you to post screenshots or videos of the issues you’re facing, or at least descriptions of what exactly you’re seeing, what platforms are affected, etc. so we can see what is broken and help the community think through how to isolate that issue and find a solution. If you have detailed feedback about the upgrade process that doesn’t fit neatly into a minimal reproduction of a single issue, we’d love to hear about it, as well. Besides social forums, we always have someone checking on the messages received from our support page.
Happy upgrading and we hope you love SDK 55!



