(Android - Crash): FragmentManager is already executing transactions
Description
We are encountering the "FragmentManager is already executing transactions" error in the app after installing the latest version of react-native-screens. This same issue was previously discussed in #1506, but it was closed without a clear resolution, so I am reopening the issue. Additionally, I am sharing the issue stack trace and the current version of react-navigation that we are using. Thank you.
Caused by java.lang.IllegalStateException: FragmentManager is already executing transactions
at androidx.fragment.app.FragmentManager.ensureExecReady(FragmentManager.java:1931)
at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:1967)
at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:311)
at com.swmansion.rnscreens.ScreenContainer.onUpdate(ScreenContainer.kt:415)
at com.swmansion.rnscreens.ScreenContainer.performUpdates(ScreenContainer.kt:359)
at com.swmansion.rnscreens.ScreenContainer.performUpdatesNow(ScreenContainer.kt:351)
at com.swmansion.rnscreens.ScreenContainer.notifyChildUpdate(ScreenContainer.kt:95)
at com.swmansion.rnscreens.Screen.setActivityState(Screen.kt:156)
at com.swmansion.rnscreens.ScreenViewManager.setActivityState(ScreenViewManager.kt:72)
at com.swmansion.rnscreens.ScreenViewManager.setActivityState(ScreenViewManager.kt:42)
at com.swmansion.rnscreens.ScreenViewManager.setActivityState(ScreenViewManager.kt:24)
at com.facebook.react.viewmanagers.RNSScreenManagerDelegate.setProperty(RNSScreenManagerDelegate.java:99)
at com.facebook.react.uimanager.ViewManagerPropertyUpdater.updateProps(ViewManagerPropertyUpdater.java:46)
at com.facebook.react.uimanager.ViewManager.updateProperties(ViewManager.java:77)
at com.facebook.react.uimanager.NativeViewHierarchyManager.updateProperties(NativeViewHierarchyManager.java:142)
at com.facebook.react.uimanager.UIImplementation.synchronouslyUpdateViewOnUIThread(UIImplementation.java:292)
at com.facebook.react.uimanager.UIManagerModule.synchronouslyUpdateViewOnUIThread(UIManagerModule.java:327)
at com.facebook.react.animated.PropsAnimatedNode.updateView(PropsAnimatedNode.java:122)
at com.facebook.react.animated.NativeAnimatedNodesManager.updateNodes(NativeAnimatedNodesManager.java:744)
at com.facebook.react.animated.NativeAnimatedNodesManager.handleEvent(NativeAnimatedNodesManager.java:599)
at com.facebook.react.animated.NativeAnimatedNodesManager.onEventDispatch(NativeAnimatedNodesManager.java:558)
at com.facebook.react.uimanager.events.EventDispatcherImpl.dispatchEvent(EventDispatcherImpl.java:116)
at com.facebook.react.views.scroll.ReactScrollViewHelper.emitScrollEvent(ReactScrollViewHelper.java:138)
at com.facebook.react.views.scroll.ReactScrollViewHelper.emitScrollEvent(ReactScrollViewHelper.java:78)
at com.facebook.react.views.scroll.ReactScrollViewHelper.updateStateOnScrollChanged(ReactScrollViewHelper.java:482)
at com.facebook.react.views.scroll.ReactScrollView.onScrollChanged(ReactScrollView.java:390)
at android.view.View.scrollTo(View.java:20842)
at android.widget.ScrollView.scrollTo(ScrollView.java:2888)
at com.facebook.react.views.scroll.ReactScrollView.scrollTo(ReactScrollView.java:1089)
at android.view.View.scrollBy(View.java:20857)
at com.facebook.react.views.scroll.ReactScrollView.scrollToChild(ReactScrollView.java:375)
at com.facebook.react.views.scroll.ReactScrollView.requestChildFocus(ReactScrollView.java:347)
at android.view.ViewGroup.requestChildFocus(ViewGroup.java:879)
at android.view.ViewGroup.requestChildFocus(ViewGroup.java:879)
at android.view.ViewGroup.requestChildFocus(ViewGroup.java:879)
at android.view.ViewGroup.requestChildFocus(ViewGroup.java:879)
at android.view.ViewGroup.requestChildFocus(ViewGroup.java:879)
at android.view.View.handleFocusGainInternal(View.java:8392)
at android.view.ViewGroup.handleFocusGainInternal(ViewGroup.java:855)
at android.view.View.requestFocusNoSearch(View.java:14968)
at android.view.View.requestFocus(View.java:14942)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3530)
at android.webkit.WebView.access$901(WebView.java:117)
at android.webkit.WebView$PrivateAccess.super_requestFocus(WebView.java:2466)
at com.android.webview.chromium.WebViewChromium.requestFocus(chromium-TrichromeWebViewGoogle6432.aab-stable-653310333:52)
at android.webkit.WebView.requestFocus(WebView.java:3035)
at android.widget.ScrollView.onRequestFocusInDescendants(ScrollView.java:2643)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3536)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3582)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3531)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3582)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3531)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3582)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3531)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3582)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3531)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3582)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3531)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3582)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3531)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3582)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3531)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3582)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3531)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3582)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3531)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3582)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3531)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3582)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3531)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3582)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3531)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3582)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3531)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3582)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3531)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3582)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3531)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3582)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3531)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3582)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3531)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3582)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3531)
at android.view.ViewGroup.onRequestFocusInDescendants(ViewGroup.java:3582)
at android.view.ViewGroup.requestFocus(ViewGroup.java:3536)
at android.view.View.requestFocus(View.java:14909)
at android.view.View.requestFocus(View.java:14851)
at android.view.View.rootViewRequestFocus(View.java:8584)
at android.view.ViewGroup.removeViewInternal(ViewGroup.java:5864)
at android.view.ViewGroup.removeViewInternal(ViewGroup.java:5815)
at android.view.ViewGroup.removeView(ViewGroup.java:5746)
at com.swmansion.rnscreens.ScreenContainer.removeView(ScreenContainer.kt:72)
at androidx.fragment.app.SpecialEffectsController$Operation$State.applyState(SpecialEffectsController.java:452)
at androidx.fragment.app.DefaultSpecialEffectsController.applyContainerChanges(DefaultSpecialEffectsController.java:743)
at androidx.fragment.app.DefaultSpecialEffectsController$1.run(DefaultSpecialEffectsController.java:108)
at androidx.fragment.app.SpecialEffectsController$Operation.complete(SpecialEffectsController.java:695)
at androidx.fragment.app.SpecialEffectsController$FragmentStateManagerOperation.complete(SpecialEffectsController.java:744)
at androidx.fragment.app.SpecialEffectsController$Operation.completeSpecialEffect(SpecialEffectsController.java:672)
at androidx.fragment.app.DefaultSpecialEffectsController$SpecialEffectsInfo.completeSpecialEffect(DefaultSpecialEffectsController.java:776)
at androidx.fragment.app.DefaultSpecialEffectsController.startAnimations(DefaultSpecialEffectsController.java:147)
at androidx.fragment.app.DefaultSpecialEffectsController.executeOperations(DefaultSpecialEffectsController.java:120)
at androidx.fragment.app.SpecialEffectsController.executePendingOperations(SpecialEffectsController.java:297)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2202)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2106)
at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:1971)
at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:311)
at com.swmansion.rnscreens.ScreenContainer.onUpdate(ScreenContainer.kt:415)
at com.swmansion.rnscreens.ScreenContainer.performUpdates(ScreenContainer.kt:359)
at com.swmansion.rnscreens.ScreenContainer.performUpdatesNow(ScreenContainer.kt:351)
at com.swmansion.rnscreens.ScreenContainer.notifyChildUpdate(ScreenContainer.kt:95)
at com.swmansion.rnscreens.Screen.setActivityState(Screen.kt:156)
at com.swmansion.rnscreens.ScreenViewManager.setActivityState(ScreenViewManager.kt:70)
at com.swmansion.rnscreens.ScreenViewManager.setActivityState(ScreenViewManager.kt:42)
at com.swmansion.rnscreens.ScreenViewManager.setActivityState(ScreenViewManager.kt:24)
at com.facebook.react.viewmanagers.RNSScreenManagerDelegate.setProperty(RNSScreenManagerDelegate.java:99)
at com.facebook.react.uimanager.ViewManagerPropertyUpdater.updateProps(ViewManagerPropertyUpdater.java:46)
at com.facebook.react.uimanager.ViewManager.updateProperties(ViewManager.java:77)
at com.facebook.react.uimanager.NativeViewHierarchyManager.updateProperties(NativeViewHierarchyManager.java:142)
at com.facebook.react.uimanager.UIImplementation.synchronouslyUpdateViewOnUIThread(UIImplementation.java:292)
at com.facebook.react.uimanager.UIManagerModule.synchronouslyUpdateViewOnUIThread(UIManagerModule.java:327)
at com.facebook.react.animated.PropsAnimatedNode.updateView(PropsAnimatedNode.java:122)
at com.facebook.react.animated.NativeAnimatedNodesManager.updateNodes(NativeAnimatedNodesManager.java:744)
at com.facebook.react.animated.NativeAnimatedNodesManager.runUpdates(NativeAnimatedNodesManager.java:640)
at com.facebook.react.animated.NativeAnimatedModule$1.doFrameGuarded(NativeAnimatedModule.java:243)
at com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.java:29)
at com.facebook.react.modules.core.ReactChoreographer$ReactChoreographerDispatcher.doFrame(ReactChoreographer.java:175)
at com.facebook.react.modules.core.ChoreographerCompat$FrameCallback$1.doFrame(ChoreographerCompat.java:85)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1687)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1698)
at android.view.Choreographer.doCallbacks(Choreographer.java:1153)
at android.view.Choreographer.doFrame(Choreographer.java:1069)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1646)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:230)
at android.os.Looper.loop(Looper.java:319)
at android.app.ActivityThread.main(ActivityThread.java:8919)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
"@react-navigation/bottom-tabs": "^6.5.11",
"@react-navigation/elements": "^1.3.21",
"@react-navigation/material-top-tabs": "^6.6.5",
"@react-navigation/native": "^6.1.9",
"@react-navigation/stack": "^6.3.20",
Steps to reproduce
This issue seems to be occurring in very rare cases, affecting about 16 to 17 users out of tens of thousands on a daily basis. Unfortunately, due to the rarity of the issue, I am unable to provide a reproducible test case, and I apologize for that.
Snack or a link to a repository
Screens version
3.34.0
React Native version
0.73.9
Platforms
Android
JavaScript runtime
Hermes
Workflow
React Native (without Expo)
Architecture
Paper (Old Architecture)
Build type
Release mode
Device
Real device
Device model
Samsung Galaxy
Acknowledgements
Yes
Hey! 👋
The issue doesn't seem to contain a minimal reproduction.
Could you provide a snack or a link to a GitHub repository under your username that reproduces the problem?
Hey! 👋
It looks like you've omitted a few important sections from the issue template.
Please complete Snack or a link to a repository section.
@DongGukMon Thanks for reporting the issue. It would be hard for me to help based on the information given. Could you provide some more details? Specifically, the navigation structure and the circumstances when the problem occurs? Having a working repro would be ideal.
@alduzy Have same problem
"react-native": "0.75.4" "react-native-screens": "3.34.0"
androidx.fragment.app.w.a0 androidx.fragment.app.w.c0 androidx.fragment.app.a.j com.swmansion.rnscreens.n.t com.swmansion.rnscreens.n.u com.swmansion.rnscreens.n.v com.swmansion.rnscreens.n.o com.swmansion.rnscreens.l.setActivityState com.swmansion.rnscreens.ScreenViewManager.setActivityState SourceFile:3 com.swmansion.rnscreens.ScreenViewManager.setActivityState SourceFile:2 com.swmansion.rnscreens.ScreenViewManager.setActivityState SourceFile:1 S4.p.setProperty com.facebook.react.uimanager.ViewManagerPropertyUpdater.updateProps SourceFile:4 com.facebook.react.uimanager.ViewManager.updateProperties com.facebook.react.uimanager.NativeViewHierarchyManager.updateProperties com.facebook.react.uimanager.UIImplementation.synchronouslyUpdateViewOnUIThread com.facebook.react.uimanager.UIManagerModule.synchronouslyUpdateViewOnUIThread com.facebook.react.animated.PropsAnimatedNode.updateView com.facebook.react.animated.NativeAnimatedNodesManager.updateNodes com.facebook.react.animated.NativeAnimatedNodesManager.handleEvent com.facebook.react.animated.NativeAnimatedNodesManager.onEventDispatch com.facebook.react.uimanager.events.EventDispatcherImpl.dispatchEvent com.reactnativepagerview.PagerViewViewManager$b.b androidx.viewpager2.widget.b.b androidx.viewpager2.widget.b.b androidx.viewpager2.widget.e.c androidx.viewpager2.widget.e.a androidx.recyclerview.widget.RecyclerView.L androidx.recyclerview.widget.RecyclerView.setScrollState androidx.recyclerview.widget.RecyclerView.r androidx.recyclerview.widget.RecyclerView.onTouchEvent androidx.viewpager2.widget.g$m.onTouchEvent android.view.View.dispatchTouchEvent View.java:15086 android.view.ViewGroup.dispatchTransformedTouchEvent ViewGroup.java:3089 android.view.ViewGroup.dispatchTouchEvent ViewGroup.java:2788 android.view.ViewGroup.dispatchTransformedTouchEvent ViewGroup.java:3091 android.view.ViewGroup.dispatchTouchEvent ViewGroup.java:2802 android.view.ViewGroup.dispatchTransformedTouchEvent ViewGroup.java:3091 android.view.ViewGroup.dispatchTouchEvent ViewGroup.java:2802 android.view.ViewGroup.dispatchTransformedTouchEvent ViewGroup.java:3091 android.view.ViewGroup.dispatchTouchEvent ViewGroup.java:2802 android.view.ViewGroup.dispatchTransformedTouchEvent ViewGroup.java:3091 android.view.ViewGroup.dispatchTouchEvent ViewGroup.java:2802 android.view.ViewGroup.dispatchTransformedTouchEvent ViewGroup.java:3091 android.view.ViewGroup.dispatchTouchEvent ViewGroup.java:2802 android.view.ViewGroup.dispatchTransformedTouchEvent ViewGroup.java:3091 android.view.ViewGroup.dispatchTouchEvent ViewGroup.java:2802 android.view.ViewGroup.dispatchTransformedTouchEvent ViewGroup.java:3091 android.view.ViewGroup.dispatchTouchEvent ViewGroup.java:2802 android.view.ViewGroup.dispatchTransformedTouchEvent ViewGroup.java:3091 android.view.ViewGroup.dispatchTouchEvent ViewGroup.java:2802 android.view.ViewGroup.dispatchTransformedTouchEvent ViewGroup.java:3091 android.view.ViewGroup.dispatchTouchEvent ViewGroup.java:2802 android.view.ViewGroup.dispatchTransformedTouchEvent ViewGroup.java:3091 android.view.ViewGroup.dispatchTouchEvent ViewGroup.java:2802 android.view.ViewGroup.dispatchTransformedTouchEvent ViewGroup.java:3091 android.view.ViewGroup.dispatchTouchEvent ViewGroup.java:2802 android.view.ViewGroup.dispatchTransformedTouchEvent ViewGroup.java:3091 android.view.ViewGroup.dispatchTouchEvent ViewGroup.java:2802 android.view.ViewGroup.dispatchTransformedTouchEvent ViewGroup.java:3091 android.view.ViewGroup.dispatchTouchEvent ViewGroup.java:2802 android.view.ViewGroup.dispatchTransformedTouchEvent ViewGroup.java:3091 android.view.ViewGroup.dispatchTouchEvent ViewGroup.java:2802 android.view.ViewGroup.dispatchTransformedTouchEvent ViewGroup.java:3091 android.view.ViewGroup.dispatchTouchEvent ViewGroup.java:2802 android.view.ViewGroup.cancelTouchTarget ViewGroup.java:3011 android.view.ViewGroup.removeViewInternal ViewGroup.java:5566 android.view.ViewGroup.removeViewInternal ViewGroup.java:5544 android.view.ViewGroup.removeView ViewGroup.java:5475 com.swmansion.rnscreens.n.removeView androidx.fragment.app.K$e$c.a androidx.fragment.app.d.s androidx.fragment.app.d$b.run androidx.fragment.app.K$e.c androidx.fragment.app.K$d.c androidx.fragment.app.K$e.d androidx.fragment.app.d$l.a androidx.fragment.app.d.w androidx.fragment.app.d.f androidx.fragment.app.K.g androidx.fragment.app.w.e0 androidx.fragment.app.w.k1 androidx.fragment.app.w.c0 androidx.fragment.app.a.j com.swmansion.rnscreens.n.t com.swmansion.rnscreens.n.u com.swmansion.rnscreens.n.v com.swmansion.rnscreens.n.o com.swmansion.rnscreens.l.setActivityState com.swmansion.rnscreens.ScreenViewManager.setActivityState SourceFile:5 com.swmansion.rnscreens.ScreenViewManager.setActivityState SourceFile:2 com.swmansion.rnscreens.ScreenViewManager.setActivityState SourceFile:1 S4.p.setProperty com.facebook.react.uimanager.ViewManagerPropertyUpdater.updateProps SourceFile:4 com.facebook.react.uimanager.ViewManager.updateProperties com.facebook.react.uimanager.NativeViewHierarchyManager.updateProperties com.facebook.react.uimanager.UIImplementation.synchronouslyUpdateViewOnUIThread com.facebook.react.uimanager.UIManagerModule.synchronouslyUpdateViewOnUIThread com.facebook.react.animated.PropsAnimatedNode.updateView com.facebook.react.animated.NativeAnimatedNodesManager.updateNodes com.facebook.react.animated.NativeAnimatedNodesManager.runUpdates com.facebook.react.animated.NativeAnimatedModule$1.doFrameGuarded com.facebook.react.uimanager.GuardedFrameCallback.doFrame com.facebook.react.modules.core.ReactChoreographer$1.doFrame android.view.Choreographer$CallbackRecord.run Choreographer.java:1229 android.view.Choreographer$CallbackRecord.run Choreographer.java:1239 android.view.Choreographer.doCallbacks Choreographer.java:899 android.view.Choreographer.doFrame Choreographer.java:827 android.view.Choreographer$FrameDisplayEventReceiver.run Choreographer.java:1214 android.os.Handler.handleCallback Handler.java:942 android.os.Handler.dispatchMessage Handler.java:99 android.os.Looper.loopOnce Looper.java:201 android.os.Looper.loop Looper.java:288 android.app.ActivityThread.main ActivityThread.java:8010 java.lang.reflect.Method.invoke Method.java com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run RuntimeInit.java:566 com.android.internal.os.ZygoteInit.main ZygoteInit.java:957
Having the same error trace
"react-native-screens": "^3.35.0", "react-native": "0.72.17", "react": "18.2.0",
@ivannzme do you happen to have any additional information, e.g. in what navigation circumstances the crash occurs?
@ivannzme do you happen to have any additional information, e.g. in what navigation circumstances the crash occurs?
unfortunately from our side we have not been able to replicate it yet, we are just seeing it from our error logging console, happy to add more info once we have
this is still exist
Fatal Exception: java.lang.RuntimeException: java.lang.IllegalStateException: FragmentManager is already executing transactions
at com.facebook.react.animated.NativeAnimatedModule$1.doFrameGuarded(NativeAnimatedModule.java:258)
at com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.kt:22)
at com.facebook.react.modules.core.ReactChoreographer$1.doFrame(ReactChoreographer.java:89)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1688)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1699)
at android.view.Choreographer.doCallbacks(Choreographer.java:1154)
at android.view.Choreographer.doFrame(Choreographer.java:1070)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1647)
at android.os.Handler.handleCallback(Handler.java:958)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:230)
at android.os.Looper.loop(Looper.java:319)
at android.app.ActivityThread.main(ActivityThread.java:9063)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:588)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)
Faced the same issue after upgrading to the latest version. In my case the culprit was having presentation: 'formSheet', on the nested stack when navigating inside it, so maybe it'll help with the fix.
To simplify, I've had the following navigation structure: RootStack at the top, which has NestedStack that is a stack navigator and there's a NestedScreen inside the NestedStack. The crash was happening when navigating from RootStack to NestedScreen like that:
navigation.navigate('NestedStack', {
screen: 'NestedScreen',
params: {},
});
The issue is gone after removing presentation: 'formSheet', from the NestedStack or replacing it with 'modal'.
This still exists:
java.lang.IllegalStateException: FragmentManager is already executing transactions
at androidx.fragment.app.FragmentManager.ensureExecReady(FragmentManager.java:1947)
at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:1977)
at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:323)
at com.swmansion.rnscreens.ScreenStack.onUpdate(ScreenStack.kt:312)
at com.swmansion.rnscreens.ScreenContainer.performUpdates(ScreenContainer.kt:359)
at com.swmansion.rnscreens.ScreenContainer.performUpdatesNow(ScreenContainer.kt:351)
at com.swmansion.rnscreens.ScreenContainer.setFragmentManager(ScreenContainer.kt:137)
at com.swmansion.rnscreens.ScreenContainer.setupFragmentManager(ScreenContainer.kt:190)
at com.swmansion.rnscreens.ScreenContainer.onAttachedToWindow(ScreenContainer.kt:262)
at android.view.View.dispatchAttachedToWindow(View.java:20109)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3430)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3437)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3437)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3437)
at android.view.ViewGroup.addViewInner(ViewGroup.java:5193)
at android.view.ViewGroup.addView(ViewGroup.java:4979)
at android.view.ViewGroup.addView(ViewGroup.java:4919)
at androidx.fragment.app.FragmentStateManager.addViewToContainer(FragmentStateManager.java:901)
at androidx.fragment.app.FragmentStateManager.createView(FragmentStateManager.java:585)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:286)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2214)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2115)
at androidx.fragment.app.FragmentManager.execPendingActions(FragmentManager.java:2052)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3327)
at androidx.fragment.app.FragmentManager.dispatchStart(FragmentManager.java:3244)
at androidx.fragment.app.Fragment.performStart(Fragment.java:3201)
at androidx.fragment.app.FragmentStateManager.start(FragmentStateManager.java:648)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:304)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2214)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:2115)
at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:2002)
at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:323)
at com.swmansion.rnscreens.ScreenStack.onUpdate(ScreenStack.kt:312)
at com.swmansion.rnscreens.ScreenContainer.performUpdates(ScreenContainer.kt:359)
at com.swmansion.rnscreens.ScreenContainer.performUpdatesNow(ScreenContainer.kt:351)
at com.swmansion.rnscreens.ScreenContainer.notifyChildUpdate(ScreenContainer.kt:95)
at com.swmansion.rnscreens.Screen.setActivityState(Screen.kt:247)
at com.swmansion.rnscreens.ScreenViewManager.setActivityState(ScreenViewManager.kt:116)
at com.swmansion.rnscreens.ScreenViewManager.setActivityState(ScreenViewManager.kt:45)
at com.swmansion.rnscreens.ScreenViewManager.setSheetInitialDetent(ScreenViewManager.kt:27)
at com.swmansion.rnscreens.ScreenViewManager.setActivityState(ScreenViewManager.kt:27)
at com.facebook.react.viewmanagers.RNSScreenManagerDelegate.setProperty(RNSScreenManagerDelegate.java:107)
at com.facebook.react.uimanager.ViewManagerPropertyUpdater.updateProps(ViewManagerPropertyUpdater.java:46)
at com.facebook.react.uimanager.ViewManager.updateProperties(ViewManager.java:77)
at com.facebook.react.uimanager.NativeViewHierarchyManager.updateProperties(NativeViewHierarchyManager.java:142)
at com.facebook.react.uimanager.UIViewOperationQueue$UpdatePropertiesOperation.execute(UIViewOperationQueue.java:94)
at com.facebook.react.uimanager.UIViewOperationQueue$1.run(UIViewOperationQueue.java:910)
at com.facebook.react.uimanager.UIViewOperationQueue.flushPendingBatches(UIViewOperationQueue.java:1023)
at com.facebook.react.uimanager.UIViewOperationQueue.-$$Nest$mflushPendingBatches(UIViewOperationQueue.java:1)
at com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.doFrameGuarded(UIViewOperationQueue.java:1083)
at com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.java:29)
at com.facebook.react.modules.core.ReactChoreographer$1.doFrame(ReactChoreographer.java:89)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1039)
at android.view.Choreographer.doCallbacks(Choreographer.java:864)
at android.view.Choreographer.doFrame(Choreographer.java:794)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1026)
at android.os.Handler.handleCallback(Handler.java:883)
at android.os.Handler.dispatchMessage(Handler.java:100)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7397)
at java.lang.reflect.Method.invoke(Method.java:-2)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:935)
any updates on it?
java.lang.RuntimeException: java.lang.IllegalStateException: FragmentManager is already executing transactions
at com.facebook.react.animated.NativeAnimatedModule$1.doFrameGuarded(NativeAnimatedModule.java:260)
at com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.kt:25)
at com.facebook.react.modules.core.ReactChoreographer.frameCallback$lambda$1(ReactChoreographer.kt:59)
at com.facebook.react.modules.core.ReactChoreographer.$r8$lambda$nSkFhrr5T7rop_XKwzlLov4NLLw
at com.facebook.react.modules.core.ReactChoreographer$$ExternalSyntheticLambda0.doFrame(D8$$SyntheticClass:0)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1106)
at android.view.Choreographer.doCallbacks(Choreographer.java:866)
at android.view.Choreographer.doFrame(Choreographer.java:792)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1092)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:226)
at android.os.Looper.loop(Looper.java:313)
at android.app.ActivityThread.main(ActivityThread.java:8663)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1135)
java.lang.IllegalStateException: FragmentManager is already executing transactions
at androidx.fragment.app.FragmentManager.ensureExecReady(FragmentManager.java:1717)
at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:1747)
at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:323)
at com.swmansion.rnscreens.ScreenContainer.onUpdate(ScreenContainer.kt:415)
at com.swmansion.rnscreens.ScreenContainer.performUpdates(ScreenContainer.kt:359)
at com.swmansion.rnscreens.ScreenContainer.performUpdatesNow(ScreenContainer.kt:351)
at com.swmansion.rnscreens.ScreenContainer.onChildUpdate(ScreenContainer.kt:95)
at com.swmansion.rnscreens.Screen.setActivityState(Screen.kt:301)
at com.swmansion.rnscreens.ScreenViewManager.setActivityState(ScreenViewManager.kt:116)
at com.swmansion.rnscreens.ScreenViewManager.setActivityState(ScreenViewManager.kt:45)
at com.swmansion.rnscreens.ScreenViewManager.setActivityState(ScreenViewManager.kt:27)
at com.facebook.react.viewmanagers.RNSScreenManagerDelegate.setProperty(RNSScreenManagerDelegate.java:107)
at com.facebook.react.uimanager.ViewManagerPropertyUpdater.updateProps(ViewManagerPropertyUpdater.java:46)
at com.facebook.react.uimanager.ViewManager.updateProperties(ViewManager.java:93)
at com.facebook.react.uimanager.NativeViewHierarchyManager.updateProperties(NativeViewHierarchyManager.java:139)
at com.facebook.react.uimanager.UIImplementation.synchronouslyUpdateViewOnUIThread(UIImplementation.java:306)
at com.facebook.react.uimanager.UIManagerModule.synchronouslyUpdateViewOnUIThread(UIManagerModule.java:341)
at com.facebook.react.animated.PropsAnimatedNode.updateView(PropsAnimatedNode.kt:109)
at com.facebook.react.animated.NativeAnimatedNodesManager.updateNodes(NativeAnimatedNodesManager.java:786)
at com.facebook.react.animated.NativeAnimatedNodesManager.handleEvent(NativeAnimatedNodesManager.java:614)
at com.facebook.react.animated.NativeAnimatedNodesManager.onEventDispatch(NativeAnimatedNodesManager.java:584)
at com.facebook.react.uimanager.events.EventDispatcherImpl.dispatchEvent(EventDispatcherImpl.java:118)
at com.reactnativepagerview.PagerViewViewManager$createViewInstance$1$1.onPageScrolled(PagerViewViewManager.kt:43)
at androidx.viewpager2.widget.CompositeOnPageChangeCallback.onPageScrolled(CompositeOnPageChangeCallback.java:59)
at androidx.viewpager2.widget.CompositeOnPageChangeCallback.onPageScrolled(CompositeOnPageChangeCallback.java:59)
at androidx.viewpager2.widget.ScrollEventAdapter.dispatchScrolled(ScrollEventAdapter.java:437)
at androidx.viewpager2.widget.ScrollEventAdapter.onScrollStateChanged(ScrollEventAdapter.java:133)
at androidx.recyclerview.widget.RecyclerView.dispatchOnScrollStateChanged(RecyclerView.java:5739)
at androidx.recyclerview.widget.RecyclerView.setScrollState(RecyclerView.java:1690)
at androidx.recyclerview.widget.RecyclerView.cancelScroll(RecyclerView.java:3924)
at androidx.recyclerview.widget.RecyclerView.onTouchEvent(RecyclerView.java:3901)
at androidx.viewpager2.widget.ViewPager2$RecyclerViewImpl.onTouchEvent(ViewPager2.java:996)
at android.view.View.dispatchTouchEvent(View.java:15076)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3891)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3581)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3893)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3597)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3893)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3597)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3893)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3597)
at com.facebook.react.views.view.ReactViewGroup.dispatchTouchEvent
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3893)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3597)
at com.facebook.react.views.view.ReactViewGroup.dispatchTouchEvent
at com.th3rdwave.safeareacontext.SafeAreaView.dispatchTouchEvent
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3893)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3597)
at com.facebook.react.views.view.ReactViewGroup.dispatchTouchEvent
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3893)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3597)
at com.facebook.react.views.view.ReactViewGroup.dispatchTouchEvent
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3893)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3597)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3893)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3597)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3893)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3597)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3893)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3597)
at com.facebook.react.views.view.ReactViewGroup.dispatchTouchEvent
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3893)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3597)
at com.facebook.react.views.view.ReactViewGroup.dispatchTouchEvent
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3893)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3597)
at com.facebook.react.views.view.ReactViewGroup.dispatchTouchEvent
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3893)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3597)
at com.facebook.react.views.view.ReactViewGroup.dispatchTouchEvent
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3893)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3597)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3893)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:3597)
at android.view.ViewGroup.cancelTouchTarget(ViewGroup.java:3813)
at android.view.ViewGroup.removeViewInternal(ViewGroup.java:6406)
at android.view.ViewGroup.removeViewInternal(ViewGroup.java:6384)
at android.view.ViewGroup.removeView(ViewGroup.java:6315)
at com.swmansion.rnscreens.ScreenContainer.removeView(ScreenContainer.kt:72)
at androidx.fragment.app.SpecialEffectsController$Operation$State.applyState(SpecialEffectsController.kt:398)
at androidx.fragment.app.DefaultSpecialEffectsController.applyContainerChanges(DefaultSpecialEffectsController.kt:757)
at androidx.fragment.app.DefaultSpecialEffectsController.executeOperations$lambda$2(DefaultSpecialEffectsController.kt:90)
at androidx.fragment.app.DefaultSpecialEffectsController.$r8$lambda$1QpWHhDUzj8NqxMUz0S9KkFt5ZY
at androidx.fragment.app.DefaultSpecialEffectsController$$ExternalSyntheticLambda2.run(D8$$SyntheticClass:0)
at androidx.fragment.app.SpecialEffectsController$Operation.complete(SpecialEffectsController.kt:608)
at androidx.fragment.app.SpecialEffectsController$FragmentStateManagerOperation.complete(SpecialEffectsController.kt:663)
at androidx.fragment.app.SpecialEffectsController$Operation.completeSpecialEffect(SpecialEffectsController.kt:587)
at androidx.fragment.app.DefaultSpecialEffectsController$SpecialEffectsInfo.completeSpecialEffect(DefaultSpecialEffectsController.kt:774)
at androidx.fragment.app.DefaultSpecialEffectsController.startAnimations(DefaultSpecialEffectsController.kt:150)
at androidx.fragment.app.DefaultSpecialEffectsController.executeOperations(DefaultSpecialEffectsController.kt:101)
at androidx.fragment.app.SpecialEffectsController.executePendingOperations(SpecialEffectsController.kt:234)
at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:1956)
at androidx.fragment.app.FragmentManager.removeRedundantOperationsAndExecute(FragmentManager.java:1845)
at androidx.fragment.app.FragmentManager.execSingleAction(FragmentManager.java:1751)
at androidx.fragment.app.BackStackRecord.commitNowAllowingStateLoss(BackStackRecord.java:323)
at com.swmansion.rnscreens.ScreenContainer.onUpdate(ScreenContainer.kt:415)
at com.swmansion.rnscreens.ScreenContainer.performUpdates(ScreenContainer.kt:359)
at com.swmansion.rnscreens.ScreenContainer.performUpdatesNow(ScreenContainer.kt:351)
at com.swmansion.rnscreens.ScreenContainer.onChildUpdate(ScreenContainer.kt:95)
at com.swmansion.rnscreens.Screen.setActivityState(Screen.kt:301)
Facing same issue, Any solution on this ??
+1 facing this issue because of presentation formSheet
EDIT: fixed my issue by updating react-native-screens from 4.4.0 to 4.7.0
I'm running v4.10.0 with "react-native": "0.77.1"
and
"@react-navigation/bottom-tabs": "^7.3.10", "@react-navigation/drawer": "^7.3.9", "@react-navigation/elements": "^2.3.8", "@react-navigation/native": "^7.1.6", "@react-navigation/stack": "^7.2.10",
We also facing this issue and we notice a significant raising of cases when we release a new EAS update (Expo).
We don't have any potential reproduction steps as we can't reproduce. However around 1% of our android users are affected. This number is lower when we dont release an eas update.
I tried to understand the android navigation system to figure out why this happens in this library but without success.
anyone has leads ?
+1 facing this issue because of presentation formSheet
EDIT: fixed my issue by updating react-native-screens from 4.4.0 to 4.7.0
Still exist even if upgrading to 4.7.0
Same issue occurs on Android when switching between tabs quickly.
Additional details: • Happens only on Android. • Occurs when using expo-dev-client. • A standalone APK does not crash when navigating.