I'm trying to upgrade my Expo React Native app from V52.0 to V53.0.
After running npx expo install expo@latest
and npx expo install --check
to update the dependencies I start the server and I get this error as soon as I run it on Expo Go in my Iphone 13 Pro.
[runtime not ready]: TypeError: Cannot read property 'v1' of undefined, js engine: hermes
anonymous
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:436438:38
loadModuleImplementation
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:253:13
guardedLoadModule
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:162:37
metroRequire
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:82:91
anonymous
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:119969:21
loadModuleImplementation
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:253:13
guardedLoadModule
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:162:37
metroRequire
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:82:91
anonymous
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:119934:28
loadModuleImplementation
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:253:13
guardedLoadModule
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:162:37
metroRequire
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:82:91
anonymous
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:119722:30
loadModuleImplementation
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:253:13
guardedLoadModule
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:162:37
metroRequire
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:82:91
anonymous
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:119575:24
loadModuleImplementation
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:253:13
guardedLoadModule
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:162:37
metroRequire
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:82:91
anonymous
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:117333:49
loadModuleImplementation
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:253:13
guardedLoadModule
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:162:37
metroRequire
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:82:91
anonymous
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:107257:45
loadModuleImplementation
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:253:13
guardedLoadModule
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:162:37
metroRequire
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:82:91
anonymous
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:3845:22
loadModuleImplementation
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:253:13
guardedLoadModule
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:155:46
metroRequire
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:82:91
global
&platform=ios&dev=true&hot=false&lazy=true&transform.engine=hermes&transform.bytecode=1&transform.routerRoot=app&unstable_transformProfile=hermes-stable:595139:3
This is my package.json
:
{
"dependencies": {
"@expo/config-plugins": "~10.0.0",
"@expo/metro-config": "~0.20.0",
"@expo/metro-runtime": "~5.0.4",
"@expo/react-native-action-sheet": "^4.0.1",
"@react-native-community/datetimepicker": "8.3.0",
"@react-navigation/bottom-tabs": "^6.5.7",
"@react-navigation/material-top-tabs": "^6.6.14",
"@react-navigation/native": "^6.1.6",
"@react-navigation/native-stack": "^6.9.13",
"@reduxjs/toolkit": "^1.9.5",
"aws-sdk": "^2.1415.0",
"axios": "^1.4.0",
"d3-array": "^1.2.0",
"d3-interpolate-path": "2.0.0",
"d3-scale": "^1.0.6",
"d3-shape": "^1.0.6",
"expo": "^53.0.7",
"expo-av": "~15.1.4",
"expo-camera": "~16.1.6",
"expo-checkbox": "~4.1.4",
"expo-constants": "~17.1.5",
"expo-dev-client": "~5.1.8",
"expo-document-picker": "~13.1.5",
"expo-file-system": "~18.1.9",
"expo-font": "~13.3.1",
"expo-image": "~2.1.6",
"expo-image-manipulator": "~13.1.5",
"expo-image-picker": "~16.1.4",
"expo-linear-gradient": "~14.1.4",
"expo-linking": "~7.1.4",
"expo-notifications": "~0.31.1",
"expo-secure-store": "~14.2.3",
"expo-splash-screen": "~0.30.8",
"expo-status-bar": "~2.2.3",
"expo-store-review": "~8.1.5",
"expo-updates": "~0.28.12",
"expo-web-browser": "~14.1.6",
"formik": "^2.4.2",
"husky": "^9.1.7",
"lint-staged": "^15.4.3",
"metro-react-native-babel-transformer": "^0.77.0",
"metro-runtime": "^0.79.1",
"react": "19.0.0",
"react-dom": "19.0.0",
"react-native": "0.79.2",
"react-native-confirmation-code-field": "^7.3.1",
"react-native-country-picker-modal": "^2.0.0",
"react-native-dropdown-picker": "^5.4.6",
"react-native-gesture-handler": "~2.24.0",
"react-native-get-random-values": "~1.11.0",
"react-native-otp-entry": "^1.8.2",
"react-native-pager-view": "6.7.1",
"react-native-reanimated": "~3.17.4",
"react-native-render-html": "^6.3.4",
"react-native-responsive-screen": "^1.4.2",
"react-native-root-toast": "^3.5.1",
"react-native-safe-area-context": "5.4.0",
"react-native-screens": "~4.10.0",
"react-native-svg": "15.11.2",
"react-native-svg-transformer": "^1.0.0",
"react-native-tab-view": "^3.5.2",
"react-native-web": "^0.20.0",
"react-native-webview": "13.13.5",
"react-phone-number-input": "^3.4.11",
"react-query": "^3.39.3",
"react-redux": "^8.1.1",
"redux-logger": "^3.0.6",
"redux-persist": "^6.0.0",
"redux-saga": "^1.2.3",
"styled-components": "^5.3.11",
"yup": "^1.2.0"
},
"devDependencies": {
"@babel/core": "^7.24.0",
"@babel/plugin-proposal-export-namespace-from": "^7.18.9",
"@commitlint/config-conventional": "^19.7.1",
"@types/react": "~19.0.10",
"@types/styled-components": "^5.1.26",
"@typescript-eslint/eslint-plugin": "^6.7.0",
"commitlint": "^19.7.1",
"eslint": "^8.50.0",
"eslint-config-prettier": "^8.8.0",
"eslint-config-standard-with-typescript": "^39.1.0",
"eslint-plugin-import": "^2.27.5",
"eslint-plugin-n": "^15.7.0",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-promise": "^6.1.1",
"prettier": "2.8.8",
"react-native-dotenv": "^3.4.9",
"typescript": "~5.8.3"
},
"name": "test",
"version": "1.0.0",
"private": true,
"main": "index.tsx"
}
What I've tried so far:
Has anyone encountered this after upgrading?
Add into metro.config.js:
config.resolver.unstable_enablePackageExports = false;
Example content of this file:
const { getDefaultConfig } = require('expo/metro-config');
/** @type {import('expo/metro-config').MetroConfig} */
const config = getDefaultConfig(__dirname);
config.resolver.unstable_enablePackageExports = false;
module.exports = config;