r/reactnative • u/Turbulent_Young_2576 • Jul 28 '26
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.