eas-build-error · v1.0.0 · 2026-07-13 · sha256 db83e14f3be7b55c
eas-build-error v1.0.0A
Immutable. This exact content is served forever at /api/v1/blob/db83e14f3be7b55c.
--- name: eas-build-error description: View the latest EAS build status and errors. Fetches build details, extracts failure logs, and suggests fixes for common iOS/Android build issues. allowed-tools: "Read,WebFetch,Bash(npx:*)" model-tier: standard-coding model-cost-policy: prefer-subscription-oauth model-metered-policy: ask-above-standard model: sonnet effort: medium version: "1.0.0" author: "flurdy" --- # EAS 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 ```bash npx eas build:view <build-id> --json ``` - If argument is `ios` or `android`: filter by platform ```bash npx eas build:list --limit=1 --platform=<platform> --json --non-interactive ``` - If no argument: get latest build across all platforms ```bash 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`: 1. **Show the error field** from the JSON: ``` ### Error <error.message> ``` 2. **Fetch detailed logs** — try each URL in `logFiles` array: - Use `WebFetch` on each log URL - Extract error lines, warnings, and failure details - If URLs return 404 (expired), note that logs have expired 3. **Try xcode build logs** if available: - Check `artifacts.xcodeBuildLogsUrl` - Fetch and extract compilation errors 4. **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/PROJECT/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. ```