expo publish doesn't work when local expo CLI is newer than the sdk we build with

We have an app build with Expo 41 SDK using eas Build & Submit. We have created a release channel in the eas.json file, called qa

"build": {
   "qa": {
     "android": {
       "env": {
         "APP_ENV": "qa"

     "ios": {
       "image": "latest",
       "env": {
         "APP_ENV": "qa"

     "releaseChannel": "qa"

We find a bug and want to update with expo publish

But the meantime we have upgrade our expo and eas CLI (not expo sdk in our app) to newest version. Our app in our release branch is still using expo 41.

We make some javascript changes that fixes some business logic and run

npx cross-env APP_ENV=qa expo publish --release-channel qa

I doesn’t work. We can see from the expo publish logs that it says

› Expo SDK: 42.0.0
› Release channel: qa
› Workflow: Managed

It looks like because our expo CLI is on a newer version than our app sdk, we don’t get the over the air update.

We have now upgraded our app to Expo sdk 42, and expo publish works again.

But if this is the case, then as soon as we update expo-cli again, we can’t do OTA? And it is not easy to know what version of expo-cli that matches a given version of expo sdk?

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.