Open JamesHemery opened 1 year ago
hey @JamesHemery ! Are you able to reproduce this issue with some regularity? During the update command, eas-cli
is spawning another process to export the project (expo/cli
) . It runs successfully but is not exiting, which indicates that there's some socket, file or network handles left open.
I'm not able to reproduce your issue, but if you are able to reproduce your issue once more, we can start by debugging the spawned process, expo export
. Please run this command in your project directory:
npx why-is-node-running ./node_modules/@expo/cli/build/bin/cli export --output-dir dist --dump-sourcemap --dump-assetmap --platform all
In addition to the regular output, it should give you instructions about sending SIGUSR1
, like this:
kill -SIGUSR1 6105 for logging
Experimental path aliases feature is enabled. Learn more: https://docs.expo.dev/guides/typescript/#path-aliases
Starting Metro Bundler
iOS node_modules/expo-router/entry.js ░░░░░░░░░░░░░░░░ 0.0% ( 0/13)
Android node_modules/expo-router/entry.js ░░░░░░░░░░░░░░░░ 0.0% (0/1)
In this example, you should open another terminal window and run kill -SIGUSR1 6105
when your command is hanging.
At this point, your hanging command should dump a bunch of logs of reasons why it isn't exiting. If you are able to report back to us with these logs, it will be extremely helpful. Thank you!
hey @JamesHemery ! Are you able to reproduce this issue with some regularity? During the update command,
eas-cli
is spawning another process to export the project (expo/cli
) . It runs successfully but is not exiting, which indicates that there's some socket, file or network handles left open.I'm not able to reproduce your issue, but if you are able to reproduce your issue once more, we can start by debugging the spawned process,
expo export
. Please run this command in your project directory:npx why-is-node-running ./node_modules/@expo/cli/build/bin/cli export --output-dir dist --dump-sourcemap --dump-assetmap --platform all
In addition to the regular output, it should give you instructions about sending
SIGUSR1
, like this:kill -SIGUSR1 6105 for logging Experimental path aliases feature is enabled. Learn more: https://docs.expo.dev/guides/typescript/#path-aliases Starting Metro Bundler iOS node_modules/expo-router/entry.js ░░░░░░░░░░░░░░░░ 0.0% ( 0/13) Android node_modules/expo-router/entry.js ░░░░░░░░░░░░░░░░ 0.0% (0/1)
In this example, you should open another terminal window and run
kill -SIGUSR1 6105
when your command is hanging.At this point, your hanging command should dump a bunch of logs of reasons why it isn't exiting. If you are able to report back to us with these logs, it will be extremely helpful. Thank you!
....
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
node:internal/async_hooks:202
thousands of this messages
@MAXSONJORDAN is that the result of running the npx why-is-node-running ...
command that quin posted?
Yes, was the result of quin's command in my environment. was the same in two different machines.
I have the same issue, it's not related to EAS update, but to npx expo export
after I set the output: 'static'
in app.json
like this:
"web": {
"bundler": "metro",
"output": "static",
},
I passed by this exactly same problem. I noted that such problem happened in my case only when I define EXPO_TOKEN at org level. Using PAT or traditional credentials I did not face this problem.
In my case, this stuck was caused by metro config from @ui-kitten/metro-config
.
Related to https://github.com/akveo/react-native-ui-kitten/issues/1410
I am experiencing this while using Github Actions and expo-github-action, however it works fine running eas update --auto
locally.
Any ideas?
I have the same issue, it's not related to EAS update, but to
npx expo export
after I set theoutput: 'static'
inapp.json
like this:"web": { "bundler": "metro", "output": "static", },
I passed by this exactly same problem. I noted that such problem happened in my case only when I define EXPO_TOKEN at org level. Using PAT or traditional credentials I did not face this problem.
Removing EXPO_TOKEN
from our .env
file solved the issue for us.
@quinlanj @georgibakken @JamesHemery
Leaving this here for anyone who runs into this issue:
We ran into this problem within our GitHub workflow but not locally — using a larger runner seems to have done the trick. Logically, a low memory ceiling for node could also be a culprit for those of you that experience this outside of a build runner.
It's possible that the child process that spawns as a result of the export process within eas upgrade
stalls when there's not enough memory — makes sense. Perhaps this is something that could be added to the troubleshooting documentation?
This bump also cut our bundle step from 13 minutes to 5 minutes. Neat 😎
I used monorepo & fixed this "Export was successful." issue by using a larger runner 🚀 it was 15 minutes using a standard private runner but now it's only ~5 minutes.
Build/Submit details page URL
No response
Summary
I try Expo SDK 49 with the tabs template :
yarn create expo --template tabs@beta
After installing dev-client and eas-update, I run
eas update --branch preview-test
And then it gets stuck on "⠏ Exporting..." after "Export was successful. Your exported files can be found in dist"
Managed or bare?
managed
Environment
expo-env-info 1.0.5 environment info: System: OS: macOS 13.3 Shell: 5.9 - /bin/zsh Binaries: Node: 18.12.1 - ~/.nvm/versions/node/v18.12.1/bin/node Yarn: 1.22.19 - ~/.nvm/versions/node/v18.12.1/bin/yarn npm: 8.19.2 - ~/.nvm/versions/node/v18.12.1/bin/npm Watchman: 2023.06.08.00 - /opt/homebrew/bin/watchman Managers: CocoaPods: 1.12.1 - /opt/homebrew/bin/pod SDKs: iOS SDK: Platforms: DriverKit 22.4, iOS 16.4, macOS 13.3, tvOS 16.4, watchOS 9.4 IDEs: Xcode: 14.3.1/14E300c - /usr/bin/xcodebuild npmPackages: expo: ~49.0.0-beta.0 => 49.0.0-beta.0 react: 18.2.0 => 18.2.0 react-dom: 18.2.0 => 18.2.0 react-native: 0.72.0 => 0.72.0 react-native-web: ~0.18.10 => 0.18.12 npmGlobalPackages: eas-cli: 3.14.0 expo-cli: 6.3.8 Expo Workflow: managed
✔ Validating global prerequisites versions passed ✔ Checking for incompatible packages passed ✔ Checking for conflicting global packages in project passed ✖ Verifying prebuild support package versions are compatible failed Issues: Expected package @expo/config-plugins@~7.2.2 Found invalid: @expo/config-plugins@6.0.2 (for more info, run: npm why @expo/config-plugins) Expected package @expo/prebuild-config@~6.2.4 Found invalid: @expo/prebuild-config@6.0.1 (for more info, run: npm why @expo/prebuild-config) Advice: • Upgrade dependencies that are using the invalid package versions. ✖ Checking dependency versions for compatibility with the installed Expo SDK failed Issues: Some dependencies are incompatible with the installed expo version: expo-router@2.0.0-rc.9 - expected version: 2.0.0-rc.8 Your project may not work correctly until you install the correct versions of the packages. Fix with: npx expo install --fix Found outdated dependencies Advice: • Use npx expo install --check to review and upgrade your dependencies. NOT SUPPORTED: option format.
validateFormats: false
can be used instead. ✔ Validating Expo Config passed ✔ Checking package.json for common issues passed✖ Found one or more possible issues with the project. See above logs for issues and advice to resolve.
Error output
[expo-cli] Experimental path aliases feature is enabled. Learn more: https://docs.expo.dev/guides/typescript/#path-aliases [expo-cli] Starting Metro Bundler [expo-cli] Web Bundling complete 8765ms [expo-cli] Android Bundling complete 8766ms [expo-cli] iOS Bundling complete 8767ms [expo-cli] iOS Building Hermes bytecode for the bundle [expo-cli] Android Building Hermes bytecode for the bundle [expo-cli] [expo-cli] Bundle Size [expo-cli] ┌ index.web.js 1.16 MB [expo-cli] ├ index.android.hbc 1.32 MB [expo-cli] ├ index.ios.hbc 1.32 MB [expo-cli] ├ index.web.js.map 3.86 MB [expo-cli] ├ index.ios.hbc.map 4.81 MB [expo-cli] └ index.android.hbc.map 4.81 MB [expo-cli] 💡 JavaScript bundle sizes affect startup time. Learn more: https://expo.fyi/javascript-bundle-sizes [expo-cli] Finished saving JS Bundles [expo-cli] Static exporting with Metro is an experimental feature. [expo-cli] Experimental path aliases feature is enabled. Learn more: https://docs.expo.dev/guides/typescript/#path-aliases [expo-cli] Starting Metro Bundler [expo-cli] Web Bundling complete 4282ms [expo-cli] [expo-cli] Web Bundling complete 4294ms [expo-cli] Web Bundling complete 4308ms [expo-cli] [expo-cli] [expo-cli] Exporting 8 files: [expo-cli] _expo/static/js/web/entry-d4b895843d3891f9d687a38a953c7ae0.js (1.16 MB) [expo-cli] _sitemap.html (15.7 kB) [expo-cli] (tabs)/index.html (15.7 kB) [expo-cli] (tabs)/two.html (15.7 kB) [expo-cli] [...missing].html (15.7 kB) [expo-cli] index.html (15.7 kB) [expo-cli] modal.html (15.7 kB) [expo-cli] two.html (15.7 kB) [expo-cli] [expo-cli] Finished saving static files [expo-cli] info Copying 12 asset files [expo-cli] info Copying 14 asset files [expo-cli] info Copying 13 asset files [expo-cli] info Done copying assets [expo-cli] info Done copying assets [expo-cli] info Done copying assets [expo-cli] Saving assets [expo-cli] saving /node_modules/@react-navigation/elements/src/assets/back-icon@1x.ios.png [expo-cli] saving /node_modules/@react-navigation/elements/src/assets/back-icon@1.5x.ios.png [expo-cli] saving /node_modules/@react-navigation/elements/src/assets/back-icon@2x.ios.png [expo-cli] saving /node_modules/@react-navigation/elements/src/assets/back-icon@3x.ios.png [expo-cli] saving /node_modules/@react-navigation/elements/src/assets/back-icon@4x.ios.png [expo-cli] saving /node_modules/@react-navigation/elements/src/assets/back-icon-mask.png [expo-cli] saving /node_modules/expo-router/assets/error.png [expo-cli] saving /node_modules/expo-router/assets/file.png [expo-cli] saving /node_modules/expo-router/assets/pkg.png [expo-cli] saving /node_modules/expo-router/assets/forward.png [expo-cli] saving /node_modules/@expo/metro-runtime/assets/alert-triangle.png [expo-cli] saving /node_modules/@expo/metro-runtime/assets/loader.png [expo-cli] saving /node_modules/@expo/vector-icons/build/vendor/react-native-vector-icons/Fonts/FontAwesome.ttf [expo-cli] saving /assets/fonts/SpaceMono-Regular.ttf [expo-cli] saving /node_modules/@react-navigation/elements/src/assets/back-icon@1x.android.png [expo-cli] saving /node_modules/@react-navigation/elements/src/assets/back-icon@1.5x.android.png [expo-cli] saving /node_modules/@react-navigation/elements/src/assets/back-icon@2x.android.png [expo-cli] saving /node_modules/@react-navigation/elements/src/assets/back-icon@3x.android.png [expo-cli] saving /node_modules/@react-navigation/elements/lib/module/assets/back-icon.png [expo-cli] saving /node_modules/@expo/metro-runtime/assets/chevron-left.png [expo-cli] saving /node_modules/@expo/metro-runtime/assets/chevron-right.png [expo-cli] saving /node_modules/@expo/metro-runtime/assets/close.png [expo-cli] Files successfully saved. [expo-cli] Processing asset bundle patterns: [expo-cli] - /Users/james/Dev/expo-starter/*/ [expo-cli] Dumping asset map [expo-cli] Dumping source maps [expo-cli] Preparing additional debugging files [expo-cli] Export was successful. Your exported files can be found in dist ⠏ Exporting...
Reproducible demo or steps to reproduce from a blank project
yarn create expo --template tabs@beta
eas update --branch preview-test