expo / expo/eas-cli

`eas build:dev` should handle all build states, rather than creating duplicate builds

Open
#3,025 0 comments 0 reactions 0 assignees View on GitHub
needs review
Dominant language
TypeScript
Stars
1.4k
Forks
236
Avg merge
3d 1h
Merged PRs (30d)
91

Description

### Build/Submit details page URL

_No response_

### Summary

When running `eas build:dev` the expectation is that either an existing build matching the current fingerprint will be installed, or a new build will be started, and installed when complete.

If there is already a queued, pending, building, errored etc build, that is completely ignored, and so its possible to create duplicate builds etc. when trying to install the latest dev client version from EAS.

You can see that at https://github.com/expo/eas-cli/blob/32d3020659740d6d74ce76d9c77bd94a656ce018/packages/eas-cli/src/commands/build/dev.ts#L322, all build status other than Finished are ignored.

I would suggest that the behaviour should be as follows:

- build not yet finished - wait for the build to complete, then install and run,
- build finished and available, install and run (the current logic),
- build failed - Notify the user and ask if a new build should be started

### Managed or bare?

Managed

### Environment

```
expo-env-info 1.3.3 environment info:
System:
OS: macOS 15.4.1
Shell: 5.9 - /bin/zsh
Binaries:
Node: 22.15.1 - ü/.nvm/versions/node/v22.15.1/bin/node
Yarn: 1.22.22 - /opt/homebrew/bin/yarn
npm: 10.9.2 - ü/.nvm/versions/node/v22.15.1/bin/npm
Watchman: 2025.04.28.00 - /opt/homebrew/bin/watchman
Managers:
CocoaPods: 1.16.2 - /Users/robert.walker/.rvm/rubies/d
SDKs:
iOS SDK:
Platforms: DriverKit 24.4, iOS 18.4, macOS 15.4, tv4
IDEs:
Android Studio: 2024.3 AI-243.25659.59.2432.13423653
Xcode: 16.3/16E140 - /usr/bin/xcodebuild
npmPackages:
expo: ü52.0.46 => 52.0.46
expo-router: ü4.0.21 => 4.0.21
expo-updates: ü0.27.4 => 0.27.4
react: 18.3.1 => 18.3.1
react-dom: 18.3.1 => 18.3.1
react-native: 0.76.9 => 0.76.9
react-native-web: ü0.19.13 => 0.19.13
npmGlobalPackages:
eas-cli: 16.6.2
Expo Workflow: managed
```

### Error output

_No response_

### Reproducible demo or steps to reproduce from a blank project

Run `eas build:dev`
From another shell, machine etc, run `eas build:dev`

Observe that two builds will be queued.

Expectation:
The second time `eas build:dev` is run, it waits for the first build to complete, and then installs it.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.