Eas Build Error
Scannednpx machina-cli add skill flurdy/agent-skills/eas-build-error --openclawEAS Build Error - View latest build status and errors
Show the status and errors from the latest EAS build.
Usage
/eas-build-error # Latest build (any platform)
/eas-build-error ios # Latest iOS build
/eas-build-error android # Latest Android build
/eas-build-error <build-id> # Specific build by ID
Implementation
Step 1: Get the build
Parse the argument to determine what to fetch:
- If argument looks like a UUID (contains hyphens, 36 chars): treat as build ID
npx eas build:view <build-id> --json - If argument is
iosorandroid: filter by platformnpx eas build:list --limit=1 --platform=<platform> --json --non-interactive - If no argument: get latest build across all platforms
npx eas build:list --limit=1 --json --non-interactive
Step 2: Display build summary
From the JSON output, extract and display:
## EAS Build: <STATUS>
| Field | Value |
|-------------|--------------------------------|
| ID | <id> |
| Platform | <platform> |
| Profile | <buildProfile> |
| Status | <status> (with emoji: ✓/✗/⏳) |
| Commit | <gitCommitHash> <gitCommitMessage> |
| Started | <createdAt> |
| Duration | <computed from metrics> |
| Logs | <link to expo.dev> |
Step 3: Show errors (if build failed)
If status is ERRORED or CANCELED:
-
Show the error field from the JSON:
### Error <error.message> -
Fetch detailed logs — try each URL in
logFilesarray:- Use
WebFetchon each log URL - Extract error lines, warnings, and failure details
- If URLs return 404 (expired), note that logs have expired
- Use
-
Try xcode build logs if available:
- Check
artifacts.xcodeBuildLogsUrl - Fetch and extract compilation errors
- Check
-
If all log URLs have expired, tell the user:
Log URLs have expired (15-minute TTL). View full logs at: <expo.dev link>
Step 4: Suggest fixes (if applicable)
If you recognize common error patterns, suggest fixes:
| Error Pattern | Suggestion |
|---|---|
non-modular header inside framework module | Add CLANG_ALLOW_NON_MODULAR_INCLUDES_IN_FRAMEWORK_MODULES to post_install |
module map file not found | Check use_modular_headers! vs use_frameworks! in Podfile |
Swift pods cannot yet be integrated as static libraries | Add useFrameworks: "static" to expo-build-properties |
Pod install errors | Check CocoaPods compatibility, try pod repo update |
No signing certificate | Check EAS credentials with eas credentials |
Provisioning profile | Run eas credentials to fix provisioning |
Example Output
## EAS Build: ERRORED ✗
| Field | Value |
|----------|----------------------------------------------------------|
| ID | 6a50d5ae-6a62-1345-96d3-c1def3755cf1 |
| Platform | iOS |
| Profile | development |
| Status | ✗ ERRORED |
| Commit | 8a2ba05 feat: Add haptic feedback... |
| Duration | 94s |
| Logs | https://expo.dev/accounts/USERNAME/projects/expire/builds/… |
### Error
The "Run fastlane" step failed because of an error in the Xcode build process.
### Detected Errors
- module map file 'gRPC-Core.modulemap' not found (in target 'gRPC-C++')
### Suggested Fix
The `use_modular_headers!` setting is breaking gRPC module maps.
Consider using `useFrameworks: "static"` with a post_install hook instead.
Source
git clone https://github.com/flurdy/agent-skills/blob/main/skills/eas-build-error/SKILL.mdView on GitHub Overview
This skill fetches the latest EAS Build status and errors for your project. It uses the EAS CLI to pull a JSON summary for the latest build (or a specific one by ID or platform) and presents a compact status table along with any error details and log links.
How This Skill Works
Input is parsed as a build ID, ios, android, or no argument. Depending on the input, it runs npx eas build:view <id> or npx eas build:list --limit=1 --platform=<platform> --json to retrieve data, then renders a summary table with ID, Platform, Profile, Status, Commit, Started, Duration and Logs. If the build failed or was canceled, it shows the Error field and attempts to fetch and summarize related logs, including xcode build logs if available, and provides suggested fixes.
When to Use It
- You want the latest build status for all platforms
- You need the latest iOS build status
- You need the latest Android build status
- You have a specific build ID to inspect
- You want to see and interpret build errors and logs
Quick Start
- Step 1: Run /eas-build-error, /eas-build-error ios, /eas-build-error android, or /eas-build-error <build-id>
- Step 2: Read the rendered EAS Build summary table for ID, Platform, Status, and Logs
- Step 3: If status is ERRORED or CANCELED, review the Error section, fetch available logs, and apply the suggested fixes
Best Practices
- Pass a platform or ID as an argument to minimize data fetch
- Rely on the JSON output to extract precise IDs and statuses
- Check the Error section first when status is ERRORED or CANCELED
- Review log URLs and note if logs have expired
- Use the Suggested Fix table to map common errors to actions
Example Use Cases
- ERRORED example: ID 6a50d5ae-6a62-1345-96d3-c1def3755cf1; Platform: iOS; Error: module map file not found
- ERRORED example: Android build with No signing certificate
- ERRORED example by ID: 9b1a3f...; Platform: iOS; Error: Swift pods cannot yet be integrated as static libraries
- Logs URL available: Logs link shows expo.dev build logs
- Logs have expired: Log URLs have expired (15-minute TTL); view full logs at expo.dev