Android builds taking a really long time on Priority plan

I’ve noticed recently that Android builds can take 30+ min to get done and they stay in queue for most of that time.

Is that the new norm? I remember when expo:build would get picked up right away if you were on the priority plan.

Anything I can do to speed it up?

For priority builds premium of the owner of the app counts, not premium of the user that run builds. If you have owner field set in app.json then that account needs to have be priority builds not your personal one.

priority builds should not have any wait time (worst case under 1 minute)

1 Like

How do I get the $30 priority plan for my organization? I’m still using expo build and will be for the next few months.

When I go to change plan, this is what I see:

Can someone from expo move my legacy $30 plan to my organization account? I build only a few times a month. The 99 plan just doesn’t make sense for my pre-revenue startup.

hi @tennisbum,

Sorry, we don’t support transferring subs between accounts. We totally understand if the Production plan isn’t a good fit for you right now. In fact we’ve designed the free tier specifically for pre-revenue startups like yours. See our fair use policy.

1 Like

Yeah, but I’m not saying I want to stop paying…on the contrary I’m telling you I want to keep paying you because I want to support you all!

But as you wish … just cancelled my $30 plan. The Expo team does great work over there. Would love to keep paying the $30, but seems you guys don’t want it. I hope this business move is net-net working out for you. For a customer that has already paid you $500 in total bills (many months where I never even used the build service), kind of bummer to treat paying customers this way. :frowning:

It’s thoughtful to want to keep supporting our team and project after nearly two years. If you find the new free plan doesn’t work for you and you really want to reinstate the old $29 plan, tell me and I will see what it takes on the backend payment system to set that up for you because you’ve been a customer of ours all this time.

Separately, give EAS Build a try when the time is right for you. People using it seem to like it for several reasons and it is where our build-related work is going toward.

@ide Thanks for the followup!

Got it, will followup if we want to reinstate the old plan.

We just launched Tribefy in the app store and so we’re 100% focused on growth. We will give EAS Build a try as EAS issues get worked out. For example, first time around wasn’t very clear how to get react-native-branch working as no config plugins were well tested and there was a lack of clear configuration instructions. I believe that is being worked on.

@ide I was able to get EAS working (kind of). The building for EAS takes much longer then with the previous system. If you could get me back on the $29 plan, would it make the builds happen faster?

The $29 plan gives you priority builds for both the old classic build service and also priority builds for EAS Build.

Priority plan (2021, what you had)

  • Priority classic builds
  • Priority EAS Build
  • 1 concurrent build with EAS Build

Production plan

  • Priority classic builds
  • Priority EAS Build
  • 2 concurrent builds with EAS Build

Got it. Just curious, do priority builds go faster? Or they just go to the top of the queue? I’ve seen some builds take 30-40 minutes to complete.

for now, it’s just top of the queue, but we are working on supporting different types of builders. If you are using mostly libraries that are used in classic builds android builds should be on par with classic builds and ios should take about 10 minutes. For third-party libraries, builds might take significantly longer if they are not providing prebuilds binaries.

@wkozyra My builds have been taking close to 40 minutes. It’s destroying my productivity.

What can I do to decrease the build time on the EAS servers? It’s pretty straight-forward and uses mostly expo-* libraries.

But now, ever since I switched it’s taking atleast 3-4 times longer than the old expo build.

It seems to be hanging a long time on Task :app:lintVitalRelease:

I’m already 24 min in…another 15 to go!

This one took over 42 minutes:

This whole area here took about 20 minutes:

Recently there were a few outages in jcenter registry and fix that we applied might increase build times, but it should not affect your build time in a significan’t way(maybe few minutes).

But now, ever since I switched it’s taking atleast 3-4 times longer than the old expo build .

If you use the same libraries that were supported for classic builds then the build should take a similar amount of time as on classic builds, so that large build time would mean that you have some libraries in package.json that have native code and are not used in your app. Can you share your package.json?

@wkozyra

In the discord EAS channel there are other people complaining about the exact same 40min+ build times and interestingly enough…due to the same issue:


If you guys have any way to see build times across all users, see if the average time has jumped in recent days. It’s very likely not just us 2 seeing longer times…

Here are my deps:

  "devDependencies": {
    "@babel/core": "^7.12.9",
    "@babel/plugin-proposal-class-properties": "^7.0.0",
    "@babel/plugin-proposal-decorators": "7.0.0",
    "@babel/plugin-proposal-object-rest-spread": "^7.0.0",
    "@babel/preset-typescript": "^7.16.5",
    "@babel/runtime": "7.0.0",
    "@types/bluebird": "^3.5.33",
    "@types/color": "^3.0.1",
    "@types/jest": "^24.0.9",
    "@types/lodash": "4.14.168",
    "@types/luxon": "^1.21.0",
    "@types/react": "~17.0.21",
    "@types/react-native": "~0.64.12",
    "babel-eslint": "10.0.1",
    "babel-jest": "24.1.0",
    "babel-plugin-transform-decorators-legacy": "^1.3.4",
    "babel-preset-react-native": "^4.0.1",
    "concurrently": "4.1.0",
    "eslint": "5.15.0",
    "husky": "1.3.1",
    "jest-expo": "^44.0.0",
    "rimraf": "^2.6.2",
    "schedule": "^0.4.0",
    "ts-jest": "24.0.0",
    "tslint": "^5.13.1"
  },
  "dependencies": {
    "@cylution/react-native-fake-caret": "^1.0.3",
    "@expo/config-plugins": "^4.0.16",
    "@expo/metro-config": "^0.3.9",
    "@expo/react-native-action-sheet": "^3.10.0",
    "@expo/vector-icons": "^12.0.0",
    "@giautm/react-native-branch": "^0.0.9",
    "@kesha-antonov/react-native-action-cable": "1.0.5",
    "@ptomasroos/react-native-multi-slider": "^2.2.2",
    "@react-native-async-storage/async-storage": "~1.15.0",
    "@react-native-community/datetimepicker": "4.0.0",
    "@react-native-community/hooks": "^2.8.1",
    "@react-native-community/masked-view": "0.1.10",
    "@react-native-community/netinfo": "7.1.3",
    "@react-native-community/slider": "4.1.12",
    "@react-navigation/bottom-tabs": "^6.0.9",
    "@react-navigation/material-top-tabs": "^6.0.6",
    "@react-navigation/native": "^6.0.6",
    "@react-navigation/native-stack": "^6.2.5",
    "@react-navigation/stack": "^6.0.11",
    "@sentry/react-native": "^3.2.11",
    "@use-expo/store-review": "^1.0.0",
    "async-mutex": "^0.3.2",
    "axios": "^0.24.0",
    "babel-root-slash-import": "^1.1.0",
    "bluebird": "^3.7.2",
    "chrono-node": "^2.3.1",
    "color": "^3.1.3",
    "crypto-js": "^4.1.1",
    "expo": "^44.0.5",
    "expo-app-loading": "~1.3.0",
    "expo-application": "~4.0.1",
    "expo-asset": "~8.4.6",
    "expo-av": "~10.2.0",
    "expo-blur": "~11.0.0",
    "expo-calendar": "~10.1.0",
    "expo-camera": "~12.1.0",
    "expo-clipboard": "~2.1.0",
    "expo-constants": "~13.0.1",
    "expo-contacts": "~10.1.0",
    "expo-crypto": "~10.1.1",
    "expo-dev-client": "~0.8.0",
    "expo-device": "~4.1.0",
    "expo-face-detector": "~11.1.1",
    "expo-file-system": "~13.1.1",
    "expo-firebase-analytics": "^6.0.0",
    "expo-font": "~10.0.4",
    "expo-haptics": "~11.1.0",
    "expo-image-crop": "^1.0.4",
    "expo-image-manipulator": "~10.2.0",
    "expo-image-picker": "~12.0.1",
    "expo-intent-launcher": "~10.1.0",
    "expo-linking": "~3.0.0",
    "expo-localization": "~12.0.0",
    "expo-location": "~14.0.1",
    "expo-media-library": "~14.0.0",
    "expo-notifications": "~0.14.0",
    "expo-print": "~11.1.0",
    "expo-random": "~12.1.1",
    "expo-sensors": "~11.1.0",
    "expo-sharing": "~10.1.0",
    "expo-sms": "~10.1.0",
    "expo-splash-screen": "~0.14.1",
    "expo-status-bar": "~1.2.0",
    "expo-store-review": "~5.1.0",
    "expo-system-ui": "~1.1.0",
    "expo-task-manager": "~10.1.0",
    "expo-updates": "~0.11.5",
    "expo-video-player": "^1.6.1",
    "expo-video-thumbnails": "~6.1.0",
    "expo-web-browser": "~10.1.0",
    "firebase": "8.2.3",
    "global": "^4.4.0",
    "haversine": "^1.1.1",
    "humanize-duration": "^3.27.0",
    "invert-color": "^2.0.0",
    "libphonenumber-js": "^1.7.30",
    "lodash": "4.17.11",
    "lottie-react-native": "5.0.1",
    "luxon": "^1.21.3",
    "mobx": "^5.15.1",
    "mobx-react": "^6.1.4",
    "mobx-state-tree": "^3.15.0",
    "mst-gql": "^0.10.0",
    "mst-persist": "^0.1.3",
    "nanoid": "^3.1.12",
    "native-base": "2.13.15",
    "patch-package": "^6.4.7",
    "pluralize": "^8.0.0",
    "postinstall-postinstall": "^2.1.0",
    "react": "17.0.1",
    "react-dom": "17.0.1",
    "react-native": "0.64.3",
    "react-native-appearance": "~0.3.3",
    "react-native-branch": "^5.2.1",
    "react-native-canvas": "^0.1.37",
    "react-native-copilot": "^2.5.1",
    "react-native-deck-swiper": "^2.0.5",
    "react-native-error-boundary": "^1.1.1",
    "react-native-gesture-handler": "~2.1.0",
    "react-native-google-places-autocomplete": "^2.3.0",
    "react-native-image-pan-zoom": "^2.1.12",
    "react-native-image-progress": "^1.1.1",
    "react-native-interactive-walkthrough": "^1.0.14",
    "react-native-keyboard-aware-scroll-view": "^0.9.4",
    "react-native-keyboard-spacer": "^0.4.1",
    "react-native-map-link": "^2.8.1",
    "react-native-modal": "^13.0.0",
    "react-native-modal-datetime-picker": "^13.0.1",
    "react-native-pager-view": "5.4.9",
    "react-native-parsed-text": "^0.0.22",
    "react-native-picker-select": "^6.3.4",
    "react-native-progress": "^5.0.0",
    "react-native-qrcode-svg": "^6.0.6",
    "react-native-reanimated": "~2.3.1",
    "react-native-safe-area-context": "3.3.2",
    "react-native-screens": "~3.10.1",
    "react-native-snap-carousel": "4.0.0-beta.6",
    "react-native-sortable-grid-with-fixed": "^2.1.0",
    "react-native-super-grid": "^4.1.3",
    "react-native-svg": "12.1.1",
    "react-native-swipe-list-view": "^3.2.9",
    "react-native-tab-view": "^3.1.1",
    "react-native-tiny-toast": "^1.0.7",
    "react-native-toast-message": "^1.4.9",
    "react-native-web": "0.17.1",
    "react-native-webview": "11.15.0",
    "sentry-expo": "^4.0.0",
    "throttle-debounce": "^2.1.0",
    "typescript": "~4.3.5",
    "uuid": "^8.3.2"
  }

android builds will be a bit slower at the moment due to a mitigation that we have in place in case jcenter goes offline again. we’re going to roll out an alternative mitigation strategy on monday at the latest, and that should bring build times back down to normal.

This is happening to us as well.

Classic build Android: 2m 20s
EAS build Android: 32m 55s (Run gradlew taking 31m 11s itself)

Classic build iOS: 1m 40s
EAS build iOS: 13m 8s

Some other times builds just hang, and I need to manually cancel and restart them.

android builds will be a bit slower at the moment due to a mitigation that we have in place in case jcenter goes offline again. we’re going to roll out an alternative mitigation strategy on monday at the latest.

note that eas build will almost always take longer than classic builds because with classic builds we don’t actually fully compile the app, so there is much less work to do (which is why there is also much less flexibility). that said, android build times for a simple app should be about 4-5 min. apologies for the delays at the moment

@brents Thanks for that. I understand the at EAS builds are different. Still I think we all agree 40 min is crazy long to wait for a build.

It used to be around 10min before. My ios is around 20 min now with EAS. Is that expectation for Android…to be around 20min? Instead of 42min?

once we deploy the alternative jcenter reliability mitigation strategy then build times will go back to normal :slight_smile:

1 Like