AppForShare

EAS build stuck in the queue: why free builds wait and what to do

· 6 min read

EAS build stuck in the queue: why free builds wait and what to do

You run eas build, the build page says it is waiting in the queue, and nothing happens for a long time. On the Expo Free plan this is common enough that the old Expo forums had several threads about it, with titles like "EAS build wait time" and "Build queue (ios): very long waiting time". This guide explains why free builds wait, how to tell a queue wait from a problem on your side, and three ways around it. Expo facts were read on expo.dev, docs.expo.dev and status.expo.dev on November 4, 2026.

Why free builds wait

Expo's pricing page lists these limits for the Free plan, as listed on November 4, 2026:

  • 15 Android and 15 iOS builds a month.
  • A low priority queue. Paid plans (Starter and up) get high priority.
  • A 45 minute build timeout.
  • 5 concurrent builds, but up to 1 on macOS. Every iOS build runs on macOS.

Two of these explain most waits. First, when Expo's workers are busy, paid builds go first and free builds wait for free capacity. Second, your own account runs one iOS build at a time on Free. If you start an iOS build for preview and another for production, the second waits for the first even when the queue is empty.

Waits also spike when Expo has a problem. On May 5, 2026 the status page posted an incident called "Increased EAS jobs wait times for free tier users", affecting Build, Submit and Workflows (status.expo.dev). Forum and Reddit reports describe long iOS waits at busy times, but there is no official number, so do not plan around one.

First, check what kind of wait it is

What you seeLikely causeWhat to do
Waiting, and you have another iOS build runningYour own macOS concurrency (1 on Free)Cancel the build you do not need, or wait for the first one
Waiting, nothing else running, status page shows an incidentExpo side delayWait, or use one of the options below
Waiting at busy hours, no incidentLow priority queue on FreeBuild at a quieter time, or use the options below
Build starts, then stops at 45 minutesFree plan timeout, not the queueSpeed up the build, or move to a plan with a longer timeout
You have built a lot this monthThe 15 builds per platform may be used upCheck usage on expo.dev; Free cannot run up overage, so wait for the next period or upgrade

Useful commands while you check:

eas build:list --status in-queue
eas build:list --status in-progress
eas build:cancel <build id>

Also check status.expo.dev before you start changing your config.

Do you need a build at all?

If you only changed JavaScript and the runtime version is the same, an Expo Update can reach testers who already have a build, with no new native build. That is Expo's tool and it is fair to use it. A new native library, a new permission or an app.json change that affects native code still needs a build. If you send updates to test builds, read how to test an over the air update before release so testers stay off your production channel.

Way 1: pay for the priority queue

Expo Starter is $19 a month plus usage, as listed on November 4, 2026. It moves your builds to the high priority queue, uses large workers, raises the timeout to 2 hours and allows up to 2 macOS builds at once. It includes $45 of build credit. After that, iOS builds cost $2 on a medium worker or $4 on a large one. A third macOS build at once costs $50 a month extra. For a team that builds every day, this is the simplest fix and keeps everything in one place. The full numbers are in EAS Build pricing in 2026.

Way 2: build on your own machine

eas build --local runs the same build on your computer and skips the queue entirely. iOS needs a Mac with Xcode. Expo's docs list the trade offs: no build caching, no Expo secret environment variables, and one platform at a time.

eas build --local --profile preview --platform ios
eas build --local --profile preview --platform android

The catch is sharing. A local build gives you a file, not an EAS install page. To get a link, upload the file:

npx appforshare upload ./build-1234567890.ipa --channel beta

Uploads from the CLI need a token (Pro and Team). On Free you can drag the file into the dashboard instead. Testers get an install page with a QR code, and on Pro the Beta channel link always opens the newest build. For iPhones, the build still has to be ad hoc signed with the tester's device in the profile.

Way 3: build on GitHub Actions

If your code is on GitHub, you can build there and skip Expo's queue. GitHub's own runners have their own wait times and limits, but they are a separate pool.

AppForShare GitHub builds (Pro and Team) set this up for you. For an Expo project without ios and android folders, the Expo preset runs npx expo prebuild --platform ios --clean (or android) before the build, then builds and uploads the result to your project. The builds run on your own GitHub Actions minutes, billed under your GitHub plan. macOS minutes cost more than Linux minutes on GitHub, so check your GitHub plan before you move every iOS build. Details are on GitHub Actions builds.

If you want to write the workflow yourself, see building iOS on GitHub Actions. Either way, the GitHub Action can post a pull request comment with install links and QR codes (pr-comment: true, Pro and Team), so reviewers install from the PR.

Compare the three

EAS Startereas build --localGitHub Actions
Skips the free queueYes, high priorityYesYes, uses GitHub's runners
Cost$19/month plus usageYour own machineYour GitHub Actions minutes
Needs a Mac for iOSNoYesNo, GitHub's macOS runners
Signing managed by ExpoYesYes, from Expo credentialsYou set it up in the repo
Share linkEAS internal linkUpload the fileUpload step or AppForShare GitHub builds

More for EAS teams: sharing eas build --local output and Expo EAS alternatives.

Common questions

How long is the EAS free queue?

Expo does not publish a number. It depends on load. Paid builds go first, and Free runs one macOS build at a time per account.

Does AppForShare build my app?

No. AppForShare does not build apps on its own machines. GitHub builds run on your GitHub Actions minutes, and everything else is uploaded by you or your CI. See AppForShare vs Expo EAS.

Can I keep EAS Build and use AppForShare only for sharing?

Yes. Connect Expo sends finished internal builds to AppForShare by EAS webhook, with no CI. The Expo internal distribution guide covers the setup.

If the queue is costing you a test round a day, try a local or GitHub build and share it the same afternoon. Create a free account and upload the file.

Keep reading

App Distribution Platform · · 5 min read

AppForShare File Size and Upload Limits

AppForShare limits the size of each build you upload by plan: 50 MB without an account, 150 MB on the Free plan, 2 GB on Pro and 4 GB on Team. Accounts also have a storage total, and every plan...