Expo Go stops receiving updates after building app with Metro Bundler running

Repro steps:

  1. Run metro bundler via expo start
  2. Build app (either via expo build:android or expo build:ios)
  3. Try to update app via Expo Go

Step 3 fails with the error message:

Could not connect to development server:

Ensure the following:
- Node server is running and available on the same network

URL: http://10.0.0.41:80

For some reason it’s trying to ping port 80 instead of 19000/19001?

The only fix that works for me is to:

  1. Restart metro bundler
  2. Restart Expo Go on device

Output from expo diagnostics:

Expo CLI 3.28.2 environment info:
    System:
      OS: Linux 4.19 Ubuntu 20.04.1 LTS (Focal Fossa)
      Shell: 5.8 - /bin/zsh
    Binaries:
      Node: 15.0.1 - ~/.nvm/versions/node/v15.0.1/bin/node
      Yarn: 1.22.5 - /usr/bin/yarn
      npm: 7.0.3 - ~/.nvm/versions/node/v15.0.1/bin/npm
    npmPackages:
      @expo/webpack-config: ~0.12.45 => 0.12.53
      expo: ^40.0.0 => 40.0.0
      react: 16.13.1 => 16.13.1
      react-dom: 16.13.1 => 16.13.1
      react-native: https://github.com/expo/react-native/archive/sdk-40.0.1.tar.gz => 0.63.2
      react-native-web: ~0.13.12 => 0.13.18
    npmGlobalPackages:
      expo-cli: 3.28.2
    Expo Workflow: managed

Hey @richardwu, this is expected behavior. After building your app via expo build the binary will be getting your JS bundle from your publication endpoint (Publishing updates - Expo Documentation), not the local server that is spun up when running expo start. To have your changes take affect in your built binaries, you’ll need to run expo publish.

Cheers,
Adam

Thanks for the response @adamjnav.

If I understand correctly, this is the case when loading published projects.

Is this the expected behavior for projects under the “Recently in Development” section (w/ my localhost’s IP address as the Metro bundler URL) as well?