[BUG] iPad: app crashes (SIGABRT) when tapping "Default" environment picker — UICollectionView invalid scroll index path
Summary
On iPad, the Claude app hard-crashes to the home screen (SIGABRT, uncaught exception) the moment you tap the "Default" environment picker on the new Code-session screen. The same action on iPhone with the identical account and app version works fine — this is iPad-only.
Environment
- Device: iPad, iPadOS 26.1 (build 23B85)
- Claude iOS app:
1.260521.1 - iPhone (same account + app version): NOT affected
- Remote Control (
claude remote-control) in use, but see note below
Steps to reproduce (100% — 3/3 captured crash logs are identical)
- Code tab → New session (
+) - Tap the "☁️ Default" environment-picker pill at the top
- The picker sheet begins to present → app immediately crashes to the home screen
Notes that isolate the cause
- Reproduces with zero remote-control environments connected (verified by killing the only connected Mac server), so it is independent of which environments are available.
- Resuming existing sessions on iPad works fine — only the new-session environment picker crashes.
- Force-quit, full device restart, app reinstall/offload, and exiting Stage Manager / Split View do not help.
Crash (uncaught NSException → abort/SIGABRT, from lastExceptionBacktrace)
__exceptionPreprocess
objc_exception_throw
-[UICollectionView _validateScrollingTargetIndexPath:raisingExceptionIfNecessary:]
-[UICollectionView _contentOffsetForScrollingToItemAtIndexPath:atScrollPosition:additionalInsets:]
-[UICollectionView _scrollToItemAtPresentationIndexPath:atScrollPosition:additionalInsets:animated:]
SwiftUI: UpdateCoalescingCollectionView.updateContent()
SwiftUI: closure #1 in UpdateCoalescingCollectionView.bridgedState.didset
SwiftUICore: Update.dispatchActions() / Update.end() / Update.dispatchImmediately
...
libsystem_c.dylib: abort() called
Exception type: EXC_CRASH (SIGABRT).
Analysis / suspected cause
The environment-picker list programmatically scrolls to a selected item using an index path that is invalid for the current data set on the iPad layout (different column count / popover geometry vs. iPhone). -[UICollectionView _validateScrollingTargetIndexPath:raisingExceptionIfNecessary:] raises because the target index path is out of range, and the exception is uncaught → abort().
Suggested fix: clamp / guard the scroll-to-selection against out-of-range index paths, or defer the scrollToItem until the data source is populated, on the iPad layout path.
Logs
Three identical .ips crash reports captured (2026-05-31 21:08, 21:12, 21:19). Happy to attach the raw files if useful.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗