EAS Prebuild Android/IOS failing - ERROR: Node.js version 16.18.1 is no longer supported.

eas build -p ios or android is failing in prebuild phase -


I have tried cleaning cache, deleting .expo, lock files and node modules folder. Reinstalling and upgrading node, expo cli and eas cli. This happened after I did expo upgrade from SDK 44 to SDK 47. Application works fine on expo start. Expo doctor did not find any issue. Here is the content of package.json file -

{
  "name": "",
  "version": "1.8.0",
  "description": "",
  "main": "node_modules/expo/AppEntry.js",
  "private": true,
  "scripts": {
    "start": "cross-env REACT_EDITOR=code expo start",
    "android": "cross-env REACT_EDITOR=code expo start --android",
    "ios": "cross-env REACT_EDITOR=code expo start --ios",
    "eject": "expo eject",
    "test": "node ./node_modules/jest/bin/jest.js --watchAll"
  },
  "jest": {
    "preset": "jest-expo"
  },
  "dependencies": {
    "@flyerhq/react-native-chat-ui": "^1.4.3",
    "@mohalla-tech/react-native-date-time-picker": "^1.0.3",
    "@react-native-async-storage/async-storage": "~1.17.3",
    "@react-native-community/datetimepicker": "6.5.2",
    "@react-navigation/bottom-tabs": "5.11.10",
    "@react-navigation/compat": "~5.1.25",
    "@react-navigation/material-bottom-tabs": "^6.1.1",
    "@react-navigation/native": "5.9.3",
    "@react-navigation/stack": "5.14.4",
    "@rneui/base": "^4.0.0-rc.6",
    "@rneui/themed": "^4.0.0-rc.6",
    "axios": "^0.21.1",
    "expo": "^47.0.0",
    "expo-app-loading": "~2.1.1",
    "expo-asset": "~8.7.0",
    "expo-checkbox": "~2.2.2",
    "expo-device": "~5.0.0",
    "expo-file-system": "~15.1.1",
    "expo-font": "~11.0.1",
    "expo-image-picker": "~14.0.2",
    "expo-linear-gradient": "~12.0.1",
    "expo-local-authentication": "~13.0.2",
    "expo-location": "~15.0.1",
    "expo-notifications": "~0.17.0",
    "expo-permissions": "~14.0.0",
    "expo-sharing": "~11.0.1",
    "expo-updates": "~0.15.6",
    "galio-framework": "git+https://github.com/galio-org/galio",
    "moment-duration-format": "^2.3.2",
    "react": "18.1.0",
    "react-dom": "18.1.0",
    "react-native": "0.70.5",
    "react-native-calendars": "^1.1280.0",
    "react-native-countdown-component": "^2.7.1",
    "react-native-date-picker": "^4.2.6",
    "react-native-daterange-picker": "^1.5.1",
    "react-native-element-dropdown": "^1.8.4",
    "react-native-elements": "^3.4.2",
    "react-native-gesture-handler": "~2.8.0",
    "react-native-google-places-autocomplete": "^2.4.1",
    "react-native-image-pan-zoom": "^2.1.12",
    "react-native-infinite-pager": "^0.0.12",
    "react-native-ionicons": "^4.6.5",
    "react-native-keyboard-aware-scroll-view": "^0.9.4",
    "react-native-media-query": "^1.0.11",
    "react-native-modal": "^13.0.1",
    "react-native-modal-datetime-picker": "^13.1.2",
    "react-native-modal-selector": "^2.0.7",
    "react-native-paper": "^4.12.0",
    "react-native-paper-dates": "^0.8.7",
    "react-native-pell-rich-editor": "^1.8.8",
    "react-native-reanimated": "~2.12.0",
    "react-native-safe-area-context": "4.4.1",
    "react-native-screens": "~3.18.0",
    "react-native-searchable-dropdown": "^1.1.3",
    "react-native-swipe-gestures": "^1.0.5",
    "react-native-toast-message": "^2.1.5",
    "react-native-web": "~0.18.7",
    "react-native-webview": "11.23.1",
    "react-native-weekly-calendar": "git+https://github.com/successful-fella/react-native-weekly-calendar"
  },
  "devDependencies": {
    "cross-env": "~7.0.0",
    "expo-cli": "~3.11.7",
    "jest-expo": "^47.0.0"
  }
}

Thanks in advance!

The above dev dependencies show you have an outdated expo-cli version. The current version for the expo-cli is 6.1.0.

I’d suggest uninstalling expo-cli completely. With the latest SDK (46 and above), you can use the local version of the CLI that comes with expo package. For more info on this, see: Expo CLI - Expo Documentation

Also, remove expo-cli as a dev dependency from your project and then re-run the build again. You don’t need it as a dependency to your project.

In fact I’ve seen it causing problems for some people in the past. If you install it, install it globally. Not as a dependency or devDependency.

About the confusing nodejs version error message… I believe it actually means that the version of the “expo” command that you are using doesn’t support that version of node.js. The “no longer” is a bad assumption on the part of the person who wrote the error message. In this case it should rather be “yet” :slight_smile:

1 Like

Thank you! @wodin @amanhimself

1 Like

Yes, the no longer supported is tripping. I will share this feedback with the team and see if the error message can be improved. Thank you!

1 Like