expo: 'Failed to download manifest from URL' error after eas build

Summary

I have this code in my app to check if any OTA update available: await Updates.checkForUpdateAsync()

When I build the app using eas build and run the app, it will notify an error in my Bugsnag saying: Failed to download manifest from URL: https://exp.host/@xxxx/xxxx

This issue does not occur when I build using expo build

Managed or bare workflow? If you have ios/ or android/ directories in your project, the answer is bare!

managed

What platform(s) does this occur on?

Android, iOS

SDK Version (managed workflow only)

44

Environment

expo-env-info 1.0.2 environment info: System: OS: Windows 10 10.0.19042 Binaries: Node: 16.13.1 - C:\Program Files\nodejs\node.EXE npm: 7.22.0 - C:\Program Files\nodejs\npm.CMD IDEs: Android Studio: Version 2021.1.0.0 AI-211.7628.21.2111.8139111 npmPackages: expo: ^44.0.0 => 44.0.3 react: 17.0.1 => 17.0.1 react-dom: 17.0.1 => 17.0.1 react-native: 0.64.3 => 0.64.3 react-native-web: 0.17.1 => 0.17.1 Expo Workflow: managed

Reproducible demo

  1. This code is in App.js
const checkAppUpdates = async () => {
  if (!__DEV__) {
    try {
      const update = await Updates.checkForUpdateAsync()
      if (update.isAvailable) {
        setIsUpdateAvailable(true)
      }
    } catch (e) {
      Bugsnag.notify(e)
    }
  }
}

useEffect(() => {
  checkAppUpdates()
}, [])
  1. Run eas build -p android
  2. Install and run the app as a standalone build.

About this issue

  • Original URL
  • State: closed
  • Created 2 years ago
  • Reactions: 1
  • Comments: 26 (3 by maintainers)

Most upvoted comments

Same thing here. SDK 46, migrated from the traditional update which worked great but now I’m stuck with that message.

Has anyone gotten an solution for this? tried everything (from changing url to https://exp.host/@user/app/) and publishing again but nothing fixed.

Nope. I’ve been waiting for this as well. Can’t find any solutions for this right now. I’m curious how others are dealing with this 🤔

I ran into the same error using Sentry. And also, after releasing a new Build it still errors out (even though I also ran “expo publish again”)

useEffect(() => {
        async function updateApp() {
            const { isAvailable } = await Updates.checkForUpdateAsync();
            if (isAvailable) {
                await Updates.fetchUpdateAsync();
                await Updates.reloadAsync();
            }
        }
        updateApp();
    }, [])
...

new error after careful app revision:

Failed to download manifest from URL: https://exp.host/@user/app/index.exp?sdkVersion=44.0.0

I just wanted to say that for my app which uses eas build and traditional publish I found that when I released the production version on a separate release channel from testing version and without publishing I had the same issue. My Updates.checkForUpdateAsync() returned an error the ‘Failed to download manifest from URL’ error. After publishing, the error went away and the update was downloaded . I have much the same code as other users had reporting this problem.

What is not clear to me is how one can submit a new build without publishing an update. In my case I don’t want to messaging the user about an OTA update since they are already up-to-date because of the App/Play store update. Not a show stopper but there must be some way to improve this experience.

Maybe not related but if: I experienced the same issue when having releaseChannel defined in eas.json and trying to push updates with eas update. Using channel in eas.json instead worked perfectly fine.

Has anyone gotten an solution for this? tried everything (from changing url to https://exp.host/@user/app/) and publishing again but nothing fixed.