Hello there,
I’m facing the following error while resetting the navigation to Home after a successful login. The app crashes as soon as the navigation resets. I’m able to reproduce the crash on a physical Samsung Galaxy S22, M52, and A11. The iOS devices are working fine.
Version I'm using:
"@react-navigation/bottom-tabs": "^6.0.9",
"@react-navigation/native": "^6.0.2",
"@react-navigation/native-stack": "^6.0.4",
"react-native": "0.76.3",
"react-native-screens": "^4.3.0",
Solutions I Tried:
-> I’ve seen other solutions where people suggest using Math.floor for numerical conversion and avoiding setting font sizes in points. However, in my case, I’m not using any of these conversions.
-> Another thing I tried was migrating to Navigation 7 with RN 0.77.0, but it didn’t help resolve the issue.
-> I also tried upgrading react-native-screens to 4.9.1, but no luck.
-> I’m not using any progress bars or reanimated carousels.
Any help would be appreciated. Here’s the full error:
03-09 20:22:19.169 E/AndroidRuntime( 2546): com.facebook.react.common.JavascriptException: Error: Exception in HostFunction: Loss of precision during arithmetic conversion: (long) 13.63636334080342
03-09 20:22:19.169 E/AndroidRuntime( 2546):
03-09 20:22:19.169 E/AndroidRuntime( 2546): This error is located at:
03-09 20:22:19.169 E/AndroidRuntime( 2546): in RNSScreenStackHeaderConfig
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Unknown
03-09 20:22:19.169 E/AndroidRuntime( 2546): in HeaderConfig
03-09 20:22:19.169 E/AndroidRuntime( 2546): in RNSScreen
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Unknown
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Suspender
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Suspense
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Freeze
03-09 20:22:19.169 E/AndroidRuntime( 2546): in DelayedFreeze
03-09 20:22:19.169 E/AndroidRuntime( 2546): in InnerScreen
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Unknown
03-09 20:22:19.169 E/AndroidRuntime( 2546): in SceneView
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Suspender
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Suspense
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Freeze
03-09 20:22:19.169 E/AndroidRuntime( 2546): in DelayedFreeze
03-09 20:22:19.169 E/AndroidRuntime( 2546): in RNSScreenStack
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Unknown
03-09 20:22:19.169 E/AndroidRuntime( 2546): in ScreenStack
03-09 20:22:19.169 E/AndroidRuntime( 2546): in NativeStackViewInner
03-09 20:22:19.169 E/AndroidRuntime( 2546): in RCTView
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Unknown
03-09 20:22:19.169 E/AndroidRuntime( 2546): in SafeAreaProviderCompat
03-09 20:22:19.169 E/AndroidRuntime( 2546): in NativeStackView
03-09 20:22:19.169 E/AndroidRuntime( 2546): in PreventRemoveProvider
03-09 20:22:19.169 E/AndroidRuntime( 2546): in NavigationContent
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Unknown
03-09 20:22:19.169 E/AndroidRuntime( 2546): in NativeStackNavigator
03-09 20:22:19.169 E/AndroidRuntime( 2546): in HomeStacks
03-09 20:22:19.169 E/AndroidRuntime( 2546): in StaticContainer
03-09 20:22:19.169 E/AndroidRuntime( 2546): in EnsureSingleNavigator
03-09 20:22:19.169 E/AndroidRuntime( 2546): in SceneView
03-09 20:22:19.169 E/AndroidRuntime( 2546): in RCTView
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Unknown
03-09 20:22:19.169 E/AndroidRuntime( 2546): in DebugContainer
03-09 20:22:19.169 E/AndroidRuntime( 2546): in MaybeNestedStack
03-09 20:22:19.169 E/AndroidRuntime( 2546): in RCTView
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Unknown
03-09 20:22:19.169 E/AndroidRuntime( 2546): in RNSScreen
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Unknown
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Suspender
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Suspense
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Freeze
03-09 20:22:19.169 E/AndroidRuntime( 2546): in DelayedFreeze
03-09 20:22:19.169 E/AndroidRuntime( 2546): in InnerScreen
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Unknown
03-09 20:22:19.169 E/AndroidRuntime( 2546): in SceneView
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Suspender
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Suspense
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Freeze
03-09 20:22:19.169 E/AndroidRuntime( 2546): in DelayedFreeze
03-09 20:22:19.169 E/AndroidRuntime( 2546): in RNSScreenStack
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Unknown
03-09 20:22:19.169 E/AndroidRuntime( 2546): in ScreenStack
03-09 20:22:19.169 E/AndroidRuntime( 2546): in NativeStackViewInner
03-09 20:22:19.169 E/AndroidRuntime( 2546): in RCTView
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Unknown
03-09 20:22:19.169 E/AndroidRuntime( 2546): in SafeAreaProviderCompat
03-09 20:22:19.169 E/AndroidRuntime( 2546): in NativeStackView
03-09 20:22:19.169 E/AndroidRuntime( 2546): in PreventRemoveProvider
03-09 20:22:19.169 E/AndroidRuntime( 2546): in NavigationContent
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Unknown
03-09 20:22:19.169 E/AndroidRuntime( 2546): in NativeStackNavigator
03-09 20:22:19.169 E/AndroidRuntime( 2546): in RootNavigator
03-09 20:22:19.169 E/AndroidRuntime( 2546): in EnsureSingleNavigator
03-09 20:22:19.169 E/AndroidRuntime( 2546): in BaseNavigationContainer
03-09 20:22:19.169 E/AndroidRuntime( 2546): in ThemeProvider
03-09 20:22:19.169 E/AndroidRuntime( 2546): in NavigationContainerInner
03-09 20:22:19.169 E/AndroidRuntime( 2546): in RNCSafeAreaProvider
03-09 20:22:19.169 E/AndroidRuntime( 2546): in SafeAreaProvider
03-09 20:22:19.169 E/AndroidRuntime( 2546): in AppContainer
03-09 20:22:19.169 E/AndroidRuntime( 2546): in RCTView
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Unknown
03-09 20:22:19.169 E/AndroidRuntime( 2546): in PersistGate
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Provider
03-09 20:22:19.169 E/AndroidRuntime( 2546): in AppHoc
03-09 20:22:19.169 E/AndroidRuntime( 2546): in RNGestureHandlerRootView
03-09 20:22:19.169 E/AndroidRuntime( 2546): in GestureHandlerRootView
03-09 20:22:19.169 E/AndroidRuntime( 2546): in gestureHandlerRootHOC(AppHoc)
03-09 20:22:19.169 E/AndroidRuntime( 2546): in RCTView
03-09 20:22:19.169 E/AndroidRuntime( 2546): in Unknown
03-09 20:22:19.169 E/AndroidRuntime( 2546): in AppContainer, js engine: hermes, stack:
After extensive research and many new builds, I found that the problem seems to be related to Fabric. I turned off the new architecture in gradle.properties, and it started working. It looks like some Samsung devices are having conflicts with Fabric.
I’ll do more research and update here on why the new architecture is causing issues with navigation.
For now, the solution that worked for me was to turn off the new architecture in the gradle.properties file for Android.
/android/gradle.properties
newArchEnabled=false