EAS Updates does not update my app

I’m using expo SDK 47 - though this problem has been occurring since 46 - with a managed workflow (no ios, no android build folder).

I’ve enabled expo-updates, and I have this piece of code. I am simply trying to send a simple update via EAS update; basically I commented out a section of my react code to hide it.

My app.config.js is like this so I am certain ios is using 1.1.0 runtime version:

ios: {…
runtimeVersion: “1.1.0”,
android: {…
runtimeVersion: “1.1.0”,

I publish an update with:

ENV_VARS=vars… eas update --branch preview --message “Test hiding code”

I can see the update published in expo dashboard, I can also see the runtime version matches. However, in my app, I never see the change.

First, I assumed everything should happen automatically on load; it obviously didn’t. So I added this code, attached to a ‘Get update’ button:

          Updates.checkForUpdateAsync().then((update) => {
            const logEntries = Updates.readLogEntriesAsync();
            if (update.isAvailable) {
              Updates.fetchUpdateAsync().then((val) => {
                  `fetched update! ${JSON.stringify(val)}`
                  .then(() => {
                    alert("Updates reloaded!");
                  .catch((e) => {

I see the ‘fetched update!’ in sentry but never get the “Updates reloaded!”. The app sometimes closes on its own, which is fine, and sometimes it refreshes, but the update is never loaded. Each time I check for update, it is always still available and downloading again.

Any ideas what I might be doing wrong? I must’ve wasted 2 weeks on this…

Unfortunately we have the same problem. We recently added fallbackToCacheTimeout: 30000 to the app.config.ts under updates. I have the feeling since then any update fails. We were building some new ipa and aab files with eas build but nothing helps.

SDK 47 (problem since 46)

Maybe using runtimeVersion like this is problematic, if we upload more than once per SDK update?

runtimeVersion: {
  policy: 'sdkVersion',

We are now using a custom runtimeVersion but it didn’t help. Still no OTAs :frowning:

My free tier 1000 updaters limit was reached. Really bothersome that it’s so hard to figure this out!