Skip to content

Raise fastlane -showBuildSettings timeout in CI workflows#780

Merged
theospears merged 1 commit into
masterfrom
claude/funny-elbakyan-6be0cb
May 16, 2026
Merged

Raise fastlane -showBuildSettings timeout in CI workflows#780
theospears merged 1 commit into
masterfrom
claude/funny-elbakyan-6be0cb

Conversation

@theospears
Copy link
Copy Markdown
Collaborator

Problem

The weekly TestFlight build failed with:

```
xcodebuild -showBuildSettings timed out after 4 retries with a base timeout of 3.
```

This is not a code issue. Fastlane runs `xcodebuild -showBuildSettings` to read build settings, retrying with escalating timeouts (3 → 6 → 12 → 24s, ~45s total). All four attempts timed out.

Root cause: the recent Alamofire (#774) and swift-collections (#775) bumps changed `Package.resolved`, which invalidated the SPM cache key (`hashFiles('**/Package.resolved')`). The build then ran with a cold package graph — the log shows the `swift-syntax` macro prebuilt being downloaded mid-step — so `-showBuildSettings` blocked on package resolution longer than fastlane's default retry budget.

Fix

Set `FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT` / `FASTLANE_XCODEBUILD_SETTINGS_RETRIES` (global fastlane env vars, honored by both `gym`/`build_app` and `scan`/`run_tests`) so cold-cache package resolution has room to complete.

Applied to both workflows:

  • `testflight-weekly.yml` — where the failure occurred (runs weekly, most likely to hit a stale cache).
  • `fastlane-tests.yml` — same SPM cache setup; lower-risk in practice (runs on every PR/push so the cache is usually warm via `restore-keys`), but a dependency-bump PR is exactly the cold-cache scenario you want to keep green.

No behavioral change when the cache is warm — the timeout only matters when `-showBuildSettings` is slow.

🤖 Generated with Claude Code

The weekly TestFlight build failed when xcodebuild -showBuildSettings
timed out after fastlane's default ~45s retry budget (base 3s, 4
retries). This happened because the Alamofire and swift-collections
bumps changed Package.resolved, invalidating the SPM cache key, so the
build ran with a cold package graph and -showBuildSettings blocked on
package resolution past the timeout.

Set FASTLANE_XCODEBUILD_SETTINGS_TIMEOUT/RETRIES on both the TestFlight
build and the test run so cold-cache package resolution (which happens
on every dependency-bump PR) has room to complete instead of failing.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@theospears theospears requested a review from a team as a code owner May 16, 2026 01:37
@theospears theospears merged commit 3d0711e into master May 16, 2026
6 checks passed
@theospears theospears deleted the claude/funny-elbakyan-6be0cb branch May 16, 2026 01:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant