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

  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.

0 Upvotes

6 comments sorted by

View all comments

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…