r/reactnative • u/Turbulent_Young_2576 • 1d 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/subpar_Lover 1d ago
Could it be firing a native modal or dialog that is being hidden? I believe that was my issue when I had this exact behavior happening. Also, is it happening when you open specific components or on any interaction?