HomeGuidesReferenceLearn
ArchiveExpo SnackDiscord and ForumsNewsletter

"React Native version mismatch" errors

Learn about what React Native version mismatch means and how to resolve it in an Expo or React Native app.


When developing an Expo or React Native app, it's not uncommon to run into an error that looks like:

Terminal
React Native version mismatch.
JavaScript version: X.XX.XNative version: X.XX.X
Make sure you have rebuilt the native code...

What this error means

The bundler that you're running in your terminal (using npx expo start) is using a different JavaScript version of react-native than the native app on your device or emulator. This can happen after upgrading your React Native or Expo SDK version, or when connecting to the wrong local development server.

How to fix it

  • Close out any development servers that you have running (you can list all terminal processes with the ps command, and search for Expo CLI or React Native community CLI processes with ps -A | grep "expo\|react-native").

  • If this is a managed workflow project, either remove the sdkVersion field from your app.json file, or make sure it matches the value of the expo dependency in your package.json file.

  • If this is a managed workflow project, you should make sure your react-native version is correct. Run npx expo-doctor will show a warning where the react-native version you should install. If you did upgrade to a newer SDK, make sure to run expo-cli upgrade and follow the prompts. Expo CLI will make sure that your dependency versions for packages like expo and react-native are aligned.

  • If this is a bare workflow project, and this error is occurring right after upgrading your React Native version, you should double-check that you have performed each of the upgrade steps correctly.

  • Finally:

    • Clear your bundler caches by running rm -rf node_modules && npm cache clean --force && npm install && watchman watch-del-all && rm -rf $TMPDIR/haste-map-* && rm -rf $TMPDIR/metro-cache && expo start --clear
      • Commands if you are using npm can be found here.
      • Commands if you are using Windows can be found here.
    • If this is a bare workflow project, run npx pod-install, then rebuild your native projects (run yarn android to rebuild for Android, and yarn ios to rebuild iOS)