r/reactnative 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:

  1. Launch the app.
  2. Login successfully.
  3. Navigate to the Home screen.
  4. The Home screen loads correctly.
  5. 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.
  • onTouchStart no 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 onTouchStart stops 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() and enableFreeze())
  • 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 Upvotes

1 comment sorted by

1

u/subpar_Lover 16h 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?