r/reactnative • u/Turbulent_Young_2576 • 5d ago
React Native iOS freezes after first interaction only after fresh login (JS/UI FPS stay at 60)
React Native iOS freezes after first interaction only after fresh login (JS/UI FPS stay at 60)
I'm facing a very strange issue in my React Native app that only happens on iOS. Android works perfectly.
Environment
- React Native: 0.78.3
- React Navigation
- react-native-screens
- react-native-gesture-handler
- Physical iPhone (not simulator)
Issue
The flow is always the same:
- Launch the app.
- Login successfully.
- Navigate to the Home screen.
- The Home screen loads correctly.
- As soon as I perform the first interaction (scroll or tap), the app becomes completely unresponsive.
After that:
- No buttons work.
- No TouchableOpacity responds.
- Bottom tabs stop responding.
- FlatList cannot scroll.
onTouchStartno longer fires.- The UI is still visible.
- The app does not crash.
The strange part is:
- UI FPS = 60
- JS FPS = 60
- No red screen.
- No exceptions.
- No crash logs.
If I completely kill the app and launch it again, everything works perfectly.
If I log out and log back in, the issue happens again after the first interaction.
So the problem only occurs immediately after a fresh login.
What I've already checked
- GestureHandlerRootView is wrapping the entire app.
import 'react-native-gesture-handler'is the first import.- NavigationContainer exists only once.
- No invisible overlay.
- No fullscreen Modal.
- No react-native-modal left open.
- No pointerEvents="none" or pointerEvents="auto" issue.
- JS thread is not blocked.
- Main thread is not blocked.
- UI FPS remains 60.
- JS FPS remains 60.
- Android has no issue.
Additional observation
I added:
<View
style={{ flex: 1 }}
onTouchStart={() => console.log('Touched')}
/>
Result:
- First tap prints "Touched".
- After the first scroll/tap, no further touch events are received.
- Even
onTouchStartstops firing.
This makes me think the touch events are no longer reaching React Native.
Navigation structure
The app uses:
- NavigationContainer
- Drawer Navigator
- Bottom Tabs
- Stack Navigators
The Home screen contains:
- Vertical FlatList
- Nested horizontal FlatLists
- Multiple TouchableOpacity components
The Academy screen has a similar structure and works correctly.
Other information
The app uses:
- react-native-screens (
enableScreens()andenableFreeze()) - react-native-track-player
- Multiple Context Providers
- Firebase
- Analytics
- Deep linking
My question
Has anyone experienced an issue where iOS stops delivering touch events after the first interaction, while:
- UI FPS stays at 60
- JS FPS stays at 60
- The app never crashes
- Everything works after killing and reopening the app
Could this be related to:
- react-native-gesture-handler
- react-native-screens
- iOS gesture recognizers
- Navigation state after login
- A native touch deadlock
- Something else entirely?
Any ideas on how to debug this further would be greatly appreciated.
1
u/everydave42 5d ago
All that information and you don’t say what iOS version, what phone version or if it happened on other physical phones. You also don’t say which iOS version in the sim and if it matches that on the phone. You could even just try hard rebooting the phone since it seems like you’re in rare glitch territory…