androidexpoyarnpkgeas

Expo EAS build failed suddenly


EAS build for android failing. It was working fine. But suddenly failed to build while yarn install dependencies

NB: No changes were made after the successful build-in of package.json. The project runs fine locally.

Eas build errors -

[4/4] Building fresh packages...
error /home/expo/workingdir/build/node_modules/babel-plugin-react-compiler: Command failed.
Exit code: 127
Command: ./scripts/link-react-compiler-runtime.sh
Arguments: 
Directory: /home/expo/workingdir/build/node_modules/babel-plugin-react-compiler
Output:
/bin/sh: 1: ./scripts/link-react-compiler-runtime.sh: not found
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.
yarn install exited with non-zero code: 127

Complete eas build logs-

Running "yarn install" in /home/expo/workingdir/build directory
yarn install v1.22.21
info No lockfile found.
[1/4] Resolving packages...
warning @babel/plugin-proposal-export-namespace-from@7.18.9: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-export-namespace-from instead.
warning @expo/config-plugins > glob@7.1.6: Glob versions prior to v9 are no longer supported
warning @expo/config-plugins > glob > inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
warning expo > @expo/config > glob@7.1.6: Glob versions prior to v9 are no longer supported
warning expo > @expo/cli > glob@7.2.3: Glob versions prior to v9 are no longer supported
warning expo > @expo/cli > glob > inflight@1.0.6: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.
warning expo > @expo/metro-config > glob@7.2.3: Glob versions prior to v9 are no longer supported
warning expo > @expo/config > sucrase > glob@7.1.6: Glob versions prior to v9 are no longer supported
warning expo > @expo/cli > npm-package-arg > osenv@0.1.5: This package is no longer supported.
warning expo > babel-preset-expo > @react-native/babel-preset > @babel/plugin-proposal-class-properties@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
warning expo > babel-preset-expo > @react-native/babel-preset > @babel/plugin-proposal-numeric-separator@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.
warning expo > babel-preset-expo > @react-native/babel-preset > @babel/plugin-proposal-optional-chaining@7.21.0: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.
warning expo > babel-preset-expo > @react-native/babel-preset > @babel/plugin-proposal-object-rest-spread@7.20.7: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.
warning expo > babel-preset-expo > @react-native/babel-preset > @babel/plugin-proposal-optional-catch-binding@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.
warning expo > babel-preset-expo > @react-native/babel-preset > @babel/plugin-proposal-async-generator-functions@7.20.7: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.
warning expo > babel-preset-expo > @react-native/babel-preset > @babel/plugin-proposal-nullish-coalescing-operator@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.
warning expo > babel-preset-expo > @react-native/babel-preset > @babel/plugin-proposal-logical-assignment-operators@7.20.7: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-logical-assignment-operators instead.
warning expo > @expo/cli > tempy > del > rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
warning expo > @expo/cli > @react-native/dev-middleware > @rnx-kit/chromium-edge-launcher > rimraf@3.0.2: Rimraf versions prior to v4 are no longer supported
warning expo > @expo/cli > tempy > del > rimraf > glob@7.2.3: Glob versions prior to v9 are no longer supported
warning expo > babel-preset-expo > @react-native/babel-preset > @react-native/babel-plugin-codegen > @react-native/codegen > glob@7.2.3: Glob versions prior to v9 are no longer supported
warning expo > babel-preset-expo > @react-native/babel-preset > @react-native/babel-plugin-codegen > @react-native/codegen > jscodeshift > @babel/plugin-proposal-class-properties@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
warning expo > babel-preset-expo > @react-native/babel-preset > @react-native/babel-plugin-codegen > @react-native/codegen > jscodeshift > @babel/plugin-proposal-optional-chaining@7.21.0: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.
warning expo > babel-preset-expo > @react-native/babel-preset > @react-native/babel-plugin-codegen > @react-native/codegen > jscodeshift > @babel/plugin-proposal-nullish-coalescing-operator@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.
warning expo > babel-preset-expo > @react-native/babel-preset > @react-native/babel-plugin-codegen > @react-native/codegen > jscodeshift > temp > rimraf@2.6.3: Rimraf versions prior to v4 are no longer supported
warning expo > babel-preset-expo > @react-native/babel-preset > @react-native/babel-plugin-codegen > @react-native/codegen > jscodeshift > temp > rimraf > glob@7.2.3: Glob versions prior to v9 are no longer supported
warning react-native > @react-native/community-cli-plugin > querystring@0.2.1: The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
warning metro-react-native-babel-preset > @babel/plugin-proposal-async-generator-functions@7.20.7: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.
warning metro-react-native-babel-preset > @babel/plugin-proposal-class-properties@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
warning metro-react-native-babel-preset > @babel/plugin-proposal-nullish-coalescing-operator@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.
warning metro-react-native-babel-preset > @babel/plugin-proposal-numeric-separator@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.
warning metro-react-native-babel-preset > @babel/plugin-proposal-object-rest-spread@7.20.7: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.
warning metro-react-native-babel-preset > @babel/plugin-proposal-optional-catch-binding@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.
warning metro-react-native-babel-preset > @babel/plugin-proposal-optional-chaining@7.21.0: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.
warning patch-package > rimraf@2.7.1: Rimraf versions prior to v4 are no longer supported
warning patch-package > rimraf > glob@7.2.3: Glob versions prior to v9 are no longer supported
[2/4] Fetching packages...
[3/4] Linking dependencies...
warning "react-native > @react-native/codegen@0.74.87" has unmet peer dependency "@babel/preset-env@^7.1.6".
warning "expo > babel-preset-expo > @react-native/babel-preset > @react-native/babel-plugin-codegen > @react-native/codegen > jscodeshift@0.14.0" has unmet peer dependency "@babel/preset-env@^7.1.6".
warning "expo-splash-screen > @expo/prebuild-config@7.0.8" has unmet peer dependency "expo-modules-autolinking@>=0.8.1".
warning " > react-native-flash-message@0.2.1" has unmet peer dependency "prop-types@^15.0 || ^16.0".
warning "react-native-phone-number-input > react-native-country-picker-modal > @callstack/react-theme-provider@3.0.3" has incorrect peer dependency "react@^16.3.0".
warning "react-native-phone-number-input > react-native-country-picker-modal > modal-react-native-web@0.2.0" has incorrect peer dependency "react@16.x.x".
warning "react-native-phone-number-input > react-native-country-picker-modal > modal-react-native-web@0.2.0" has unmet peer dependency "react-art@16.x.x".
warning "react-native-phone-number-input > react-native-country-picker-modal > modal-react-native-web@0.2.0" has incorrect peer dependency "react-dom@16.x.x".
warning "react-native-phone-number-input > react-native-country-picker-modal > modal-react-native-web@0.2.0" has incorrect peer dependency "react-native-web@0.9.x".
warning "react-native-render-html > @native-html/transient-render-engine@11.2.3" has unmet peer dependency "@types/react-native@*".
warning "react-native-render-html > @native-html/transient-render-engine > @native-html/css-processor@1.11.0" has unmet peer dependency "@types/react-native@*".
warning " > react-simple-form-validator@0.3.1" has unmet peer dependency "dayjs@>=1.10.7".
[4/4] Building fresh packages...
error /home/expo/workingdir/build/node_modules/babel-plugin-react-compiler: Command failed.
Exit code: 127
Command: ./scripts/link-react-compiler-runtime.sh
Arguments: 
Directory: /home/expo/workingdir/build/node_modules/babel-plugin-react-compiler
Output:
/bin/sh: 1: ./scripts/link-react-compiler-runtime.sh: not found
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.

Solution

  • I'm having the same issue with same code that worked yesterday. Seems like it has to do with the update mentioned.

    There seems to be a workaround if you have a yarn.lock file. https://github.com/facebook/react/issues/31150#issuecomment-2399192691

    I cannot try the fix since i removed my lock file in troubleshooting.

    Edit; I managed to get it working by adding

    "resolutions": {
     "**/babel-plugin-react-compiler": "0.0.0-experimental-ca8e0be-20240916"
    },
    

    to my package.json, removing node-modules and running yarn install.