Skip to content

revert: back out #1500 to unblock TestFlight launch (P0)#1503

Merged
CraigBuckmaster merged 1 commit into
masterfrom
claude/fix-ios-launch-crash-I3NJC
Apr 17, 2026
Merged

revert: back out #1500 to unblock TestFlight launch (P0)#1503
CraigBuckmaster merged 1 commit into
masterfrom
claude/fix-ios-launch-crash-I3NJC

Conversation

@CraigBuckmaster
Copy link
Copy Markdown
Owner

Summary

TestFlight build 1.0.5 (12) crashes on first launch immediately after the R2 scripture.db download completes. Signature:

EXC_CRASH (SIGABRT)
facebook::react::ObjCTurboModule::performVoidMethodInvocation
  (RCTTurboModule.mm:441)
__cxa_rethrow → objc_exception_rethrow → _objc_terminate → abort

Launch-to-crash delta ≈16 s, matching the R2 download window. Build (11) was fine. The only behavior-changing PR to land between (11) and (12) was #1500. Per Craig, #1501 was NOT in build (12).

Reverting #1500 restores the (11) bundle for the post-download launch path and unblocks (13).

What this PR does

This is a clean git revert of d1ce303 (the feature commit of #1500). It undoes exactly the 5 files the PR touched:

PR #1499 (map probe fix) is untouched. That PR only runs when the Map tab is navigated to, not on launch.

Why revert instead of targeted fix

A careful audit of the 5 files PR #1500 touched did not surface an obvious crash source on the boot path (no new migrations, no new providers, no new mount-time TurboModule calls). Per the brief, revert is preferred over a risky quick fix when the root cause is unclear — Craig needs the app to launch. Investigation writeup + re-land plan: see linked follow-up issue.

Verification plan

After merge, rebuild / resubmit:

git pull
cd app && eas build --platform ios --profile production && eas submit --platform ios --latest

Success criteria

https://claude.ai/code/session_01NP991WRNgq8xhKAQtnm1rf

@github-actions
Copy link
Copy Markdown

Test Results

✅ All tests passed

Passed Failed Total
Tests ✅ 3391 ❌ 0 3391
Suites ✅ 461 ❌ 0 461

Coverage

Statements Branches Functions Lines

⏱️ Duration: 81.4s

@CraigBuckmaster CraigBuckmaster merged commit 04019bd into master Apr 17, 2026
6 checks passed
@CraigBuckmaster CraigBuckmaster deleted the claude/fix-ios-launch-crash-I3NJC branch April 17, 2026 18:38
CraigBuckmaster pushed a commit that referenced this pull request Apr 17, 2026
Master is running ESLint with --max-warnings 0 and has accumulated 13
warnings across 9 files that block CI on every PR. Clearing them here
so PR #1503 (the post-download launch-crash revert) can merge.

- StreamingDot: lazy-initialize the Animated.Value via useState instead
  of reading useRef(...).current at render time (react-hooks/refs)
- useAmicusThread: keep the standard fetch-on-mount, silence the
  react-hooks/set-state-in-effect rule with a scoped disable comment
- import/order nits across MapErrorBoundary, TabNavigator,
  AmicusSettingsSection, and the four test files that interleaved
  jest.mock() calls with imports — consolidate imports first, then the
  jest.mock block (Jest hoists mocks regardless)
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.

2 participants