react-native-screens icon indicating copy to clipboard operation
react-native-screens copied to clipboard

[4.11.0-beta.1] Unhandled SoftException com.facebook.react.bridge.ReactNoCrashSoftException: Cannot get UIManager because the context doesn't contain an active CatalystInstance.

Open efstathiosntonas opened this issue 7 months ago • 19 comments
trafficstars

Description

Having this crash on a Samsung S22 running Android 14. Even though I use 4.11.0-beta.1 iirc this exists in previous versions too.

"react-native-reanimated": "3.17.3", 
"react-native-gesture-handler": "2.25.0", 
"@react-navigation/native": "7.1.6", 
"@react-navigation/native-stack": "7.3.10",
"@react-navigation/stack": "7.2.10",`
Unhandled SoftException 
com.facebook.react.bridge.ReactNoCrashSoftException: Cannot get UIManager because the context doesn't contain an active CatalystInstance.
at com.facebook.react.uimanager.UIManagerHelper.getUIManager(UIManagerHelper.java:82)
at com.facebook.react.uimanager.UIManagerHelper.getEventDispatcher(UIManagerHelper.java:134)
at com.facebook.react.uimanager.UIManagerHelper.getEventDispatcherForReactTag(UIManagerHelper.java:112)
at com.swmansion.rnscreens.ScreenFragment.onDestroy(ScreenFragment.kt:325)
at androidx.fragment.app.Fragment.performDestroy(Fragment.java:3376)
at androidx.fragment.app.FragmentStateManager.destroy(FragmentStateManager.java:812)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:346)
at androidx.fragment.app.FragmentStore.moveToExpectedState(FragmentStore.java:114)
at androidx.fragment.app.FragmentManager.moveToState(FragmentManager.java:1455)
at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3034)
at androidx.fragment.app.FragmentManager.dispatchDestroy(FragmentManager.java:2988)
at androidx.fragment.app.Fragment.performDestroy(Fragment.java:3371)
at androidx.fragment.app.FragmentStateManager.destroy(FragmentStateManager.java:812)
at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:346)
at androidx.fragment.app.SpecialEffectsController$FragmentStateManagerOperation.complete(SpecialEffectsController.kt:664)
at androidx.fragment.app.SpecialEffectsController$Operation.cancel(SpecialEffectsController.kt:507)
at androidx.fragment.app.SpecialEffectsController.forceCompleteAllOperations(SpecialEffectsController.kt:293)
at androidx.fragment.app.SpecialEffectsController.executePendingOperations(SpecialEffectsController.kt:199)
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.setFragmentManager(ScreenContainer.kt:137)
at com.swmansion.rnscreens.ScreenContainer.setupFragmentManager(ScreenContainer.kt:200)
at com.swmansion.rnscreens.ScreenContainer.onAttachedToWindow(ScreenContainer.kt:262)
at android.view.View.dispatchAttachedToWindow(View.java:23244)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3722)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3729)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3729)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3729)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:3729)
at android.view.ViewGroup.addViewInner(ViewGroup.java:5604)
at android.view.ViewGroup.addView(ViewGroup.java:5352)
at android.view.ViewGroup.addView(ViewGroup.java:5292)
at com.facebook.react.views.view.ReactClippingViewManager.addView(ReactClippingViewManager.kt:36)
at com.facebook.react.views.view.ReactClippingViewManager.addView(ReactClippingViewManager.kt:20)
at com.facebook.react.uimanager.NativeViewHierarchyManager.manageChildren(NativeViewHierarchyManager.java:541)
at com.swmansion.reanimated.layoutReanimation.ReanimatedNativeHierarchyManager.manageChildren(ReanimatedNativeHierarchyManager.java:149)
at com.facebook.react.uimanager.UIViewOperationQueue$ManageChildrenOperation.execute(UIViewOperationQueue.java:194)
at com.facebook.react.uimanager.UIViewOperationQueue$1.run(UIViewOperationQueue.java:881)
2025-04-15 11:42:32.040 13830-13830 unknown:co...agerHelper com.APP_NAME                             E  	at com.facebook.react.uimanager.UIViewOperationQueue.flushPendingBatches(UIViewOperationQueue.java:994) (Ask Gemini)
at com.facebook.react.uimanager.UIViewOperationQueue.-$$Nest$mflushPendingBatches(Unknown Source:0)
at com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.doFrameGuarded(UIViewOperationQueue.java:1054)
at com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.kt:22)
at com.facebook.react.modules.core.ReactChoreographer.frameCallback$lambda$1(ReactChoreographer.kt:59)
at com.facebook.react.modules.core.ReactChoreographer.$r8$lambda$nSkFhrr5T7rop_XKwzlLov4NLLw(Unknown Source:0)
at com.facebook.react.modules.core.ReactChoreographer$$ExternalSyntheticLambda0.doFrame(D8$$SyntheticClass:0)
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(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:588)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

edit:

Now it showed up elsewhere after applying the patch, well that's a progress 😅

Unhandled SoftException 
com.facebook.react.bridge.ReactNoCrashSoftException: Cannot get UIManager because the context doesn't contain an active CatalystInstance.
at com.facebook.react.uimanager.UIManagerHelper.getUIManager(UIManagerHelper.java:82)
at com.facebook.react.uimanager.UIManagerHelper.getEventDispatcher(UIManagerHelper.java:134)
at com.facebook.react.uimanager.UIManagerHelper.getEventDispatcherForReactTag(UIManagerHelper.java:112)
at com.th3rdwave.safeareacontext.SafeAreaProviderManagerKt.handleOnInsetsChange(SafeAreaProviderManager.kt:39)
at com.th3rdwave.safeareacontext.SafeAreaProviderManagerKt.access$handleOnInsetsChange(SafeAreaProviderManager.kt:1)
at com.th3rdwave.safeareacontext.SafeAreaProviderManager$addEventEmitters$1.invoke(SafeAreaProviderManager.kt:28)
at com.th3rdwave.safeareacontext.SafeAreaProviderManager$addEventEmitters$1.invoke(SafeAreaProviderManager.kt:28)
at com.th3rdwave.safeareacontext.SafeAreaProvider.maybeUpdateInsets(SafeAreaProvider.kt:21)
at com.th3rdwave.safeareacontext.SafeAreaProvider.onPreDraw(SafeAreaProvider.kt:39)
at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:1204)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4786)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3345)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:11437)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1690)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1699)
at android.view.Choreographer.doCallbacks(Choreographer.java:1154)
at android.view.Choreographer.doFrame(Choreographer.java:1080)
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(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:588)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

Steps to reproduce

I suspect this is happening between Fast Refresh but I had a user in production complaining that the app is frozen but they can scroll the lists (and this is exactly what happens locally). No interactions are possible even though the buttons trigger the events (have some console.log on them to test events).

I'll try this patch and see how it goes, it just checks if catalyst exists, will try it for a whole dev day and report back if I see it again.

react-native-screens+4.11.0-beta.1.patch

diff --git a/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.kt b/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.kt
index a275bc9..7746bb5 100644
--- a/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.kt
+++ b/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.kt
@@ -356,67 +356,73 @@ open class ScreenContainer(
             return
         }
         needsUpdate = false
-        onUpdate()
-        notifyContainerUpdate()
+        if (context is ReactContext && (context as ReactContext).hasActiveReactInstance()) {
+            onUpdate()
+            notifyContainerUpdate()
+        }
     }
 
     open fun onUpdate() {
-        createTransaction().let {
-            // detach screens that are no longer active
-            val orphaned: MutableSet<Fragment> =
-                HashSet(
-                    requireNotNull(fragmentManager) {
-                        "fragment manager is null when performing update in ScreenContainer"
-                    }.fragments,
-                )
-            for (fragmentWrapper in screenWrappers) {
-                if (getActivityState(fragmentWrapper) === ActivityState.INACTIVE &&
-                    fragmentWrapper.fragment.isAdded
-                ) {
-                    detachScreen(it, fragmentWrapper.fragment)
+        if (context is ReactContext && (context as ReactContext).hasActiveReactInstance()) {
+            createTransaction().let {
+                // detach screens that are no longer active
+                val orphaned: MutableSet<Fragment> =
+                    HashSet(
+                        requireNotNull(fragmentManager) {
+                            "fragment manager is null when performing update in ScreenContainer"
+                        }.fragments,
+                    )
+                for (fragmentWrapper in screenWrappers) {
+                    if (getActivityState(fragmentWrapper) === ActivityState.INACTIVE &&
+                        fragmentWrapper.fragment.isAdded
+                    ) {
+                        detachScreen(it, fragmentWrapper.fragment)
+                    }
+                    orphaned.remove(fragmentWrapper.fragment)
                 }
-                orphaned.remove(fragmentWrapper.fragment)
-            }
-            if (orphaned.isNotEmpty()) {
-                val orphanedAry = orphaned.toTypedArray()
-                for (fragment in orphanedAry) {
-                    if (fragment is ScreenFragment) {
-                        if (fragment.screen.container == null) {
-                            detachScreen(it, fragment)
+                if (orphaned.isNotEmpty()) {
+                    val orphanedAry = orphaned.toTypedArray()
+                    for (fragment in orphanedAry) {
+                        if (fragment is ScreenFragment) {
+                            if (fragment.screen.container == null) {
+                                detachScreen(it, fragment)
+                            }
                         }
                     }
                 }
-            }
 
-            // if there is an "onTop" screen it means the transition has ended
-            val transitioning = topScreen == null
-
-            // attach newly activated screens
-            var addedBefore = false
-            val pendingFront: ArrayList<ScreenFragmentWrapper> = ArrayList()
-
-            for (fragmentWrapper in screenWrappers) {
-                val activityState = getActivityState(fragmentWrapper)
-                if (activityState !== ActivityState.INACTIVE && !fragmentWrapper.fragment.isAdded) {
-                    addedBefore = true
-                    attachScreen(it, fragmentWrapper.fragment)
-                } else if (activityState !== ActivityState.INACTIVE && addedBefore) {
-                    // we detach the screen and then reattach it later to make it appear on front
-                    detachScreen(it, fragmentWrapper.fragment)
-                    pendingFront.add(fragmentWrapper)
+                // if there is an "onTop" screen it means the transition has ended
+                val transitioning = topScreen == null
+
+                // attach newly activated screens
+                var addedBefore = false
+                val pendingFront: ArrayList<ScreenFragmentWrapper> = ArrayList()
+
+                for (fragmentWrapper in screenWrappers) {
+                    val activityState = getActivityState(fragmentWrapper)
+                    if (activityState !== ActivityState.INACTIVE && !fragmentWrapper.fragment.isAdded) {
+                        addedBefore = true
+                        attachScreen(it, fragmentWrapper.fragment)
+                    } else if (activityState !== ActivityState.INACTIVE && addedBefore) {
+                        // we detach the screen and then reattach it later to make it appear on front
+                        detachScreen(it, fragmentWrapper.fragment)
+                        pendingFront.add(fragmentWrapper)
+                    }
+                    fragmentWrapper.screen.setTransitioning(transitioning)
                 }
-                fragmentWrapper.screen.setTransitioning(transitioning)
-            }
 
-            for (screenFragment in pendingFront) {
-                attachScreen(it, screenFragment.fragment)
-            }
+                for (screenFragment in pendingFront) {
+                    attachScreen(it, screenFragment.fragment)
+                }
 
-            it.commitNowAllowingStateLoss()
+                it.commitNowAllowingStateLoss()
+            }
         }
     }
 
     protected open fun notifyContainerUpdate() {
-        topScreen?.fragmentWrapper?.onContainerUpdate()
+        if (context is ReactContext && (context as ReactContext).hasActiveReactInstance()) {
+            topScreen?.fragmentWrapper?.onContainerUpdate()
+        }
     }
 }

Snack or a link to a repository

no repo, sorry, private app and not easy to repro anyway

Screens version

4.11.0-beta.1

React Native version

0.77.2

Platforms

Android

JavaScript runtime

Hermes

Workflow

React Native (without Expo)

Architecture

Paper (Old Architecture)

Build type

Debug mode

Device

Real device

Device model

Samsung S22 A14

Acknowledgements

Yes

efstathiosntonas avatar Apr 15 '25 09:04 efstathiosntonas

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?

github-actions[bot] avatar Apr 15 '25 09:04 github-actions[bot]

Okay, not sure what should I do here. How is the patch working for you since?

kkafar avatar May 09 '25 12:05 kkafar

@kkafar sorry for the late reply, I totally missed this 😢

After upgrading to 4.11.1 (without applying the patch above) I haven't spotted it again.

Closing, if it resurfaces will reopen!

efstathiosntonas avatar Jun 11 '25 08:06 efstathiosntonas

Thanks for the update!

kkafar avatar Jun 11 '25 08:06 kkafar

Reproduced on android emulator without the patch

react-native-screens: 4.11.1 react-native: 0.79.3

c71a1c23-707f-4202-8de5-21dd3a015a58
E/unknown:com.facebook.react.uimanager.UIManagerHelper: Unhandled SoftException
E/unknown:com.facebook.react.uimanager.UIManagerHelper: com.facebook.react.bridge.ReactNoCrashSoftException: Cannot get UIManager because the context doesn't contain an active CatalystInstance.
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.facebook.react.uimanager.UIManagerHelper.getUIManager(UIManagerHelper.java:82)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.facebook.react.uimanager.UIManagerHelper.getEventDispatcher(UIManagerHelper.java:134)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.facebook.react.uimanager.UIManagerHelper.getEventDispatcherForReactTag(UIManagerHelper.java:112)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.swmansion.rnscreens.ScreenStackHeaderConfig.onDetachedFromWindow(ScreenStackHeaderConfig.kt:164)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.View.dispatchDetachedFromWindow(View.java:21368)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3957)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3949)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3949)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewGroup.removeViewInternal(ViewGroup.java:5573)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewGroup.removeViewInternal(ViewGroup.java:5544)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewGroup.removeView(ViewGroup.java:5475)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.swmansion.rnscreens.ScreenContainer.removeView(ScreenContainer.kt:72)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.SpecialEffectsController$Operation$State.applyState(SpecialEffectsController.kt:398)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.SpecialEffectsController.enqueue$lambda$4$lambda$2(SpecialEffectsController.kt:147)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.SpecialEffectsController.$r8$lambda$TeCmoVW0hctjg0BNHLP6mPbAs5U(Unknown Source:0)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.SpecialEffectsController$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.SpecialEffectsController$Operation.complete(SpecialEffectsController.kt:608)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.SpecialEffectsController$FragmentStateManagerOperation.complete(SpecialEffectsController.kt:663)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.SpecialEffectsController$Operation.cancel(SpecialEffectsController.kt:507)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.SpecialEffectsController.forceCompleteAllOperations(SpecialEffectsController.kt:293)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3037)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.FragmentManager.dispatchDestroy(FragmentManager.java:2988)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.FragmentController.dispatchDestroy(FragmentController.java:346)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.FragmentActivity.onDestroy(FragmentActivity.java:258)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.appcompat.app.AppCompatActivity.onDestroy(AppCompatActivity.java:283)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.facebook.react.ReactActivity.onDestroy(ReactActivity.java:64)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.app.Activity.performDestroy(Activity.java:8598)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1452)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:5408)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:5454)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.app.servertransaction.DestroyActivityItem.execute(DestroyActivityItem.java:47)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:179)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2303)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.os.Handler.dispatchMessage(Handler.java:106)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.os.Looper.loopOnce(Looper.java:201)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.os.Looper.loop(Looper.java:288)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.app.ActivityThread.main(ActivityThread.java:7884)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at java.lang.reflect.Method.invoke(Native Method)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
D/LeakCanary: Watching instance of com.swmansion.rnscreens.stack.views.ScreensCoordinatorLayout (com.swmansion.rnscreens.ScreenStackFragment received Fragment#onDestroyView() callback (references to its views should be cleared to prevent leaks)) with key 35c5d344-d524-44dc-a0b4-e7bc4d746f7f
D/LeakCanary: Watching instance of com.swmansion.rnscreens.ScreenStackFragment (com.swmansion.rnscreens.ScreenStackFragment received Fragment#onDestroy() callback) with key a71ff20c-b657-434d-b52d-5a6d6469e50a
D/LeakCanary: Watching instance of com.swmansion.rnscreens.ScreenFragment$ScreensFrameLayout (com.swmansion.rnscreens.ScreenFragment received Fragment#onDestroyView() callback (references to its views should be cleared to prevent leaks)) with key b72b6ce1-13f0-4d84-b1c5-100beb8df0c7
D/LeakCanary: Watching instance of com.swmansion.rnscreens.ScreenFragment (com.swmansion.rnscreens.ScreenFragment received Fragment#onDestroy() callback) with key 0e5f225c-2f4d-455a-aba0-f3d5545fecd6
E/unknown:com.facebook.react.uimanager.UIManagerHelper: Unhandled SoftException
E/unknown:com.facebook.react.uimanager.UIManagerHelper: com.facebook.react.bridge.ReactNoCrashSoftException: Cannot get UIManager because the context doesn't contain an active CatalystInstance.
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.facebook.react.uimanager.UIManagerHelper.getUIManager(UIManagerHelper.java:82)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.facebook.react.uimanager.UIManagerHelper.getEventDispatcher(UIManagerHelper.java:134)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.facebook.react.uimanager.UIManagerHelper.getEventDispatcherForReactTag(UIManagerHelper.java:112)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.swmansion.rnscreens.ScreenStackHeaderConfig.onDetachedFromWindow(ScreenStackHeaderConfig.kt:164)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.View.dispatchDetachedFromWindow(View.java:21368)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3957)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3949)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:3949)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewGroup.removeViewInternal(ViewGroup.java:5573)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewGroup.removeViewInternal(ViewGroup.java:5544)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewGroup.removeView(ViewGroup.java:5475)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.swmansion.rnscreens.ScreenContainer.removeView(ScreenContainer.kt:72)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.SpecialEffectsController$Operation$State.applyState(SpecialEffectsController.kt:398)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.SpecialEffectsController.enqueue$lambda$4$lambda$2(SpecialEffectsController.kt:147)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.SpecialEffectsController.$r8$lambda$TeCmoVW0hctjg0BNHLP6mPbAs5U(Unknown Source:0)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.SpecialEffectsController$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.SpecialEffectsController$Operation.complete(SpecialEffectsController.kt:608)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.SpecialEffectsController$FragmentStateManagerOperation.complete(SpecialEffectsController.kt:663)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.SpecialEffectsController$Operation.cancel(SpecialEffectsController.kt:507)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.SpecialEffectsController.forceCompleteAllOperations(SpecialEffectsController.kt:293)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3037)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.FragmentManager.dispatchDestroy(FragmentManager.java:2988)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.FragmentController.dispatchDestroy(FragmentController.java:346)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.fragment.app.FragmentActivity.onDestroy(FragmentActivity.java:258)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at androidx.appcompat.app.AppCompatActivity.onDestroy(AppCompatActivity.java:283)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.facebook.react.ReactActivity.onDestroy(ReactActivity.java:64)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.app.Activity.performDestroy(Activity.java:8598)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1452)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:5408)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:5454)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.app.servertransaction.DestroyActivityItem.execute(DestroyActivityItem.java:47)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:179)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2303)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.os.Handler.dispatchMessage(Handler.java:106)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.os.Looper.loopOnce(Looper.java:201)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.os.Looper.loop(Looper.java:288)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.app.ActivityThread.main(ActivityThread.java:7884)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at java.lang.reflect.Method.invoke(Native Method)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:548)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:936)
D/LeakCanary: Watching instance of com.swmansion.rnscreens.stack.views.ScreensCoordinatorLayout (com.swmansion.rnscreens.ScreenStackFragment received Fragment#onDestroyView() callback (references to its views should be cleared to prevent leaks)) with key e4cf35a5-0f86-4e48-a560-3b4e3095ef39
D/LeakCanary: Watching instance of com.swmansion.rnscreens.ScreenStackFragment

regalstreak avatar Jun 12 '25 17:06 regalstreak

@regalstreak hi, does the patch mitigates it? Did you tried it?

efstathiosntonas avatar Jun 12 '25 18:06 efstathiosntonas

@regalstreak also can you reproduce this consistently?

kkafar avatar Jun 13 '25 08:06 kkafar

I am facing an issue that I believe is similar, although I can't know for sure:

com.facebook.react.bridge.ReactNoCrashSoftException: raiseSoftException(getOrCreateDestroyTask()): handleHostException(message = "addViewAt: failed to insert view [1916] into parent [764] at index 5")

would this patch fix this one as well? (using react-native-screens 4.11.1 as well, rn 0.79.3, new arch enabled)

pierroo avatar Jun 15 '25 11:06 pierroo

@kkafar Yes I am able to reproduce this consistently, on my pixel 7 eve.

Trying to use the patch now

regalstreak avatar Jun 17 '25 14:06 regalstreak

@regalstreak just a note about the patch, I have no clue if it has any side effects, iirc it had at least silenced the errors.

efstathiosntonas avatar Jun 17 '25 14:06 efstathiosntonas

do you guys know if it's remotely the same issue as this one? https://github.com/software-mansion/react-native-reanimated/issues/7493#issuecomment-2979301002

or completely unrelated

pierroo avatar Jun 17 '25 15:06 pierroo

Didn't work :( same issue. Also saw weird flickers all around the app, crashed 2-3s after opening

Using the old arch in 0.79

RCTEventEmitter.receiveEvent([27,"onLoopEnd",{"loopMode":"loop","animationName":"Timeline 1"}])
E/unknown:com.facebook.react.uimanager.UIManagerHelper: Unhandled SoftException
E/unknown:com.facebook.react.uimanager.UIManagerHelper: com.facebook.react.bridge.ReactNoCrashSoftException: Cannot get UIManager because the context doesn't contain an active CatalystInstance.
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.facebook.react.uimanager.UIManagerHelper.getUIManager(UIManagerHelper.java:82)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.facebook.react.uimanager.UIManagerHelper.getEventDispatcher(UIManagerHelper.java:134)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.facebook.react.uimanager.UIManagerHelper.getEventDispatcherForReactTag(UIManagerHelper.java:112)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.th3rdwave.safeareacontext.SafeAreaProviderManagerKt.handleOnInsetsChange(SafeAreaProviderManager.kt:39)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.th3rdwave.safeareacontext.SafeAreaProviderManagerKt.access$handleOnInsetsChange(SafeAreaProviderManager.kt:1)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.th3rdwave.safeareacontext.SafeAreaProviderManager$addEventEmitters$1.invoke(SafeAreaProviderManager.kt:28)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.th3rdwave.safeareacontext.SafeAreaProviderManager$addEventEmitters$1.invoke(SafeAreaProviderManager.kt:28)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.th3rdwave.safeareacontext.SafeAreaProvider.maybeUpdateInsets(SafeAreaProvider.kt:21)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.th3rdwave.safeareacontext.SafeAreaProvider.onPreDraw(SafeAreaProvider.kt:39)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:1176)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4347)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3009)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10514)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1566)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1575)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.Choreographer.doCallbacks(Choreographer.java:1175)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.Choreographer.doFrame(Choreographer.java:1104)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1549)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.os.Handler.handleCallback(Handler.java:991)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.os.Handler.dispatchMessage(Handler.java:102)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.os.Looper.loopOnce(Looper.java:232)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.os.Looper.loop(Looper.java:317)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.app.ActivityThread.main(ActivityThread.java:8934)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at java.lang.reflect.Method.invoke(Native Method)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:591)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: Unhandled SoftException
E/unknown:com.facebook.react.uimanager.UIManagerHelper: com.facebook.react.bridge.ReactNoCrashSoftException: Cannot get UIManager because the context doesn't contain an active CatalystInstance.
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.facebook.react.uimanager.UIManagerHelper.getUIManager(UIManagerHelper.java:82)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.facebook.react.uimanager.UIManagerHelper.getEventDispatcher(UIManagerHelper.java:134)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.facebook.react.uimanager.UIManagerHelper.getEventDispatcherForReactTag(UIManagerHelper.java:112)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.th3rdwave.safeareacontext.SafeAreaProviderManagerKt.handleOnInsetsChange(SafeAreaProviderManager.kt:39)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.th3rdwave.safeareacontext.SafeAreaProviderManagerKt.access$handleOnInsetsChange(SafeAreaProviderManager.kt:1)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.th3rdwave.safeareacontext.SafeAreaProviderManager$addEventEmitters$1.invoke(SafeAreaProviderManager.kt:28)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.th3rdwave.safeareacontext.SafeAreaProviderManager$addEventEmitters$1.invoke(SafeAreaProviderManager.kt:28)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.th3rdwave.safeareacontext.SafeAreaProvider.maybeUpdateInsets(SafeAreaProvider.kt:21)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.th3rdwave.safeareacontext.SafeAreaProvider.onPreDraw(SafeAreaProvider.kt:39)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:1176)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4347)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3009)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10514)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1566)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1575)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.Choreographer.doCallbacks(Choreographer.java:1175)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.Choreographer.doFrame(Choreographer.java:1104)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1549)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.os.Handler.handleCallback(Handler.java:991)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.os.Handler.dispatchMessage(Handler.java:102)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.os.Looper.loopOnce(Looper.java:232)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.os.Looper.loop(Looper.java:317)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.app.ActivityThread.main(ActivityThread.java:8934)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at java.lang.reflect.Method.invoke(Native Method)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:591)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: Unhandled SoftException
E/unknown:com.facebook.react.uimanager.UIManagerHelper: com.facebook.react.bridge.ReactNoCrashSoftException: Cannot get UIManager because the context doesn't contain an active CatalystInstance.
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.facebook.react.uimanager.UIManagerHelper.getUIManager(UIManagerHelper.java:82)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.facebook.react.uimanager.UIManagerHelper.getEventDispatcher(UIManagerHelper.java:134)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.facebook.react.uimanager.UIManagerHelper.getEventDispatcherForReactTag(UIManagerHelper.java:112)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.th3rdwave.safeareacontext.SafeAreaProviderManagerKt.handleOnInsetsChange(SafeAreaProviderManager.kt:39)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.th3rdwave.safeareacontext.SafeAreaProviderManagerKt.access$handleOnInsetsChange(SafeAreaProviderManager.kt:1)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.th3rdwave.safeareacontext.SafeAreaProviderManager$addEventEmitters$1.invoke(SafeAreaProviderManager.kt:28)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.th3rdwave.safeareacontext.SafeAreaProviderManager$addEventEmitters$1.invoke(SafeAreaProviderManager.kt:28)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.th3rdwave.safeareacontext.SafeAreaProvider.maybeUpdateInsets(SafeAreaProvider.kt:21)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.th3rdwave.safeareacontext.SafeAreaProvider.onPreDraw(SafeAreaProvider.kt:39)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:1176)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:4347)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:3009)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:10514)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1566)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1575)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.Choreographer.doCallbacks(Choreographer.java:1175)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.Choreographer.doFrame(Choreographer.java:1104)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1549)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.os.Handler.handleCallback(Handler.java:991)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.os.Handler.dispatchMessage(Handler.java:102)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.os.Looper.loopOnce(Looper.java:232)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.os.Looper.loop(Looper.java:317)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at android.app.ActivityThread.main(ActivityThread.java:8934)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at java.lang.reflect.Method.invoke(Native Method)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:591)
E/unknown:com.facebook.react.uimanager.UIManagerHelper: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:911)
W/unknown:ReactNative: Tried to enqueue runnable on already finished thread: 'js... dropping Runnable.
W/unknown:ReactNative: Tried to enqueue runnable on already finished thread: 'js... dropping Runnable.
W/unknown:ReactNative: Tried to enqueue runnable on already finished thread: 'js... dropping Runnable.
I/bthal.activity: bt_power: LeAdvStat: 20:35:31:822 - 20:35:32:823, duration: 1000, le_adv_count: 1, total_le_adv_count: 115402, total_event_count: 1
W/unknown:ViewManagerPropertyUpdater: Could not find generated setter for class com.swmansion.rnscreens.ScreensShadowNode

regalstreak avatar Jun 17 '25 15:06 regalstreak

Interestingly, its only happening on the prod build, dev builds are working fine

regalstreak avatar Jun 17 '25 20:06 regalstreak

@efstathiosntonas are you using https://github.com/gronxb/hot-updater by any chance? Removing had solved this for now

regalstreak avatar Jun 23 '25 16:06 regalstreak

@regalstreak no, I do not use this module.

efstathiosntonas avatar Jun 23 '25 17:06 efstathiosntonas

@kkafar I am experiencing same crash with expo eas update and triggering app reload via Updates.reloadAsync()

Packages Used:

"react-native": "0.79.2",
"react-native-screens": "4.10.0",
"react-native-safe-area-context": "5.4.0",
"expo-updates": "0.28.13",
"expo": "53.0.9",
Unhandled SoftException
com.facebook.react.bridge.ReactNoCrashSoftException: Cannot get UIManager because the context doesn't contain an active CatalystInstance.
	at com.facebook.react.uimanager.n0.h(UIManagerHelper.java:59)
	at com.facebook.react.uimanager.n0.b(UIManagerHelper.java:25)
	at com.facebook.react.uimanager.n0.c(UIManagerHelper.java:5)
	at com.swmansion.rnscreens.Z.onDetachedFromWindow(ScreenStackHeaderConfig.kt:26)
	at android.view.View.dispatchDetachedFromWindow(View.java:23298)
	at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4203)
	at android.view.ViewGroup.removeViewInternal(ViewGroup.java:5844)
	at android.view.ViewGroup.removeViewAt(ViewGroup.java:5791)
	at com.facebook.react.uimanager.ViewGroupManager.removeViewAt(ViewGroupManager.java:3)
	at com.swmansion.rnscreens.ScreenViewManager.removeViewAt(ScreenViewManager.kt:5)
	at com.swmansion.rnscreens.ScreenViewManager.removeViewAt(ScreenViewManager.kt:1)
	at com.facebook.react.uimanager.q.removeAllViews(IViewGroupManager.kt:18)
	at com.swmansion.rnscreens.ScreenViewManager.removeAllViews(ScreenViewManager.kt:1)
	at com.facebook.react.uimanager.D.dropView(NativeViewHierarchyManager.java:137)
	at com.swmansion.reanimated.layoutReanimation.ReanimatedNativeHierarchyManager.dropView(ReanimatedNativeHierarchyManager.java:8)
	at com.facebook.react.uimanager.D.dropView(NativeViewHierarchyManager.java:131)
	at com.swmansion.reanimated.layoutReanimation.ReanimatedNativeHierarchyManager.dropView(ReanimatedNativeHierarchyManager.java:8)
	at com.facebook.react.uimanager.D.dropView(NativeViewHierarchyManager.java:131)
	at com.swmansion.reanimated.layoutReanimation.ReanimatedNativeHierarchyManager.dropView(ReanimatedNativeHierarchyManager.java:8)
	at com.facebook.react.uimanager.D.dropView(NativeViewHierarchyManager.java:131)
	at com.swmansion.reanimated.layoutReanimation.ReanimatedNativeHierarchyManager.dropView(ReanimatedNativeHierarchyManager.java:8)
	at com.facebook.react.uimanager.D.dropView(NativeViewHierarchyManager.java:131)
	at com.swmansion.reanimated.layoutReanimation.ReanimatedNativeHierarchyManager.dropView(ReanimatedNativeHierarchyManager.java:8)
	at com.facebook.react.uimanager.D.dropView(NativeViewHierarchyManager.java:131)
	at com.swmansion.reanimated.layoutReanimation.ReanimatedNativeHierarchyManager.dropView(ReanimatedNativeHierarchyManager.java:8)
	at com.facebook.react.uimanager.D.dropView(NativeViewHierarchyManager.java:131)
	at com.swmansion.reanimated.layoutReanimation.ReanimatedNativeHierarchyManager.dropView(ReanimatedNativeHierarchyManager.java:8)
	at com.facebook.react.uimanager.D.dropView(NativeViewHierarchyManager.java:131)
	at com.swmansion.reanimated.layoutReanimation.ReanimatedNativeHierarchyManager.dropView(ReanimatedNativeHierarchyManager.java:8)
	at com.facebook.react.uimanager.D.removeRootView(NativeViewHierarchyManager.java:64)
	at com.facebook.react.uimanager.t0$n.execute(UIViewOperationQueue.java:9)
	at com.facebook.react.uimanager.t0$a.run(UIViewOperationQueue.java:145)
	at com.facebook.react.uimanager.t0.R(UIViewOperationQueue.java:54)
	at com.facebook.react.uimanager.t0.w(UIViewOperationQueue.java:1)
	at com.facebook.react.uimanager.t0$b.runGuarded(UIViewOperationQueue.java:3)
	at com.facebook.react.bridge.GuardedRunnable.run(GuardedRunnable.java:1)
	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(Native Method)
	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578)
	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

justinkx avatar Jun 27 '25 03:06 justinkx

@justinkx, @regalstreak, I have been struggling the same issue. I have tried the patch and it didn't work. What we'll do about this problem honestly i have no clue

Deatsilence avatar Jun 27 '25 11:06 Deatsilence

Is there someone who has a opinion about this problem ? What should we do ?

react-native-screens -> 4.11.1 react-native -> 0.79.4 (new arch is false)

Deatsilence avatar Jun 30 '25 10:06 Deatsilence

We're on "react-native-screens": "~4.11.1", "react-native": "^0.79.4", "expo": "^53.0.12", "expo-updates": "^0.28.15",

New arch and react compiler both enabled.

And seemingly having the same crashing problem in production application.

Exception java.lang.RuntimeException: Exception thrown when executing UIFrameGuarded
  at com.facebook.react.fabric.FabricUIManager$DispatchUIFrameCallback.doFrameGuarded (FabricUIManager.java:1400)
  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 (Unknown Source)
  at com.facebook.react.modules.core.ReactChoreographer$$ExternalSyntheticLambda0.doFrame (D8$$SyntheticClass)
  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
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:578)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1103)
Caused by java.lang.IllegalStateException: addViewAt: failed to insert view [118] into parent [120] at index 0
  at com.facebook.react.fabric.mounting.SurfaceMountingManager.addViewAt (SurfaceMountingManager.java:411)
  at com.facebook.react.fabric.mounting.mountitems.IntBufferBatchMountItem.execute (IntBufferBatchMountItem.java:141)
  at com.facebook.react.fabric.mounting.MountItemDispatcher.executeOrEnqueue (MountItemDispatcher.java:370)
  at com.facebook.react.fabric.mounting.MountItemDispatcher.dispatchMountItems (MountItemDispatcher.java:265)
  at com.facebook.react.fabric.mounting.MountItemDispatcher.tryDispatchMountItems (MountItemDispatcher.java:122)
  at com.facebook.react.fabric.FabricUIManager$DispatchUIFrameCallback.doFrameGuarded (FabricUIManager.java:1396)
Caused by java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.
  at android.view.ViewGroup.addViewInner (ViewGroup.java:5509)
  at android.view.ViewGroup.addView (ViewGroup.java:5328)
  at android.view.ViewGroup.addView (ViewGroup.java:5268)
  at com.facebook.react.views.view.ReactClippingViewManager.addView (ReactClippingViewManager.kt:36)
  at com.facebook.react.views.view.ReactClippingViewManager.addView (ReactClippingViewManager.kt:20)
  at com.facebook.react.fabric.mounting.SurfaceMountingManager.addViewAt (SurfaceMountingManager.java:408)

hpeinar avatar Jun 30 '25 12:06 hpeinar

Also getting this same issue with react-native-code-push after OTA update at the point it would normally restart JS bundle.

wijskinner avatar Jul 02 '25 12:07 wijskinner

Also getting this same issue when restart JS bundle

wangchongwei avatar Jul 29 '25 10:07 wangchongwei

I solved the issue by creating a hardReload App function using expo module API. So instead of restarting metro JS bundle, restart the entire app.

        val intent = packageManager.getLaunchIntentForPackage(packageName)
        intent?.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK)
        activity.startActivity(intent)
        Process.killProcess(Process.myPid())

justinkx avatar Jul 29 '25 10:07 justinkx

any update?

wangchongwei avatar Aug 14 '25 08:08 wangchongwei

@regalstreak or anyone? Can you provide me with reproduction & exact steps to reproduce the issue?

kkafar avatar Sep 23 '25 21:09 kkafar

@kkafar This error occurs in development mode:

npx expo prebuild --clean
expo run:android --device

After executing those commands the app closes. However, if I press the key to open the app again, it opens fine.

Unhandled SoftException com.facebook.react.bridge.ReactNoCrashSoftException: Cannot get UIManager because the context doesn't contain an active CatalystInstance. at com.facebook.react.uimanager.UIManagerHelper.getUIManager(UIManagerHelper.java:82) at com.facebook.react.uimanager.UIManagerHelper.getEventDispatcher(UIManagerHelper.java:134) at com.facebook.react.uimanager.UIManagerHelper.getEventDispatcherForReactTag(UIManagerHelper.java:112) at com.swmansion.rnscreens.ScreenStackHeaderConfig.onDetachedFromWindow(ScreenStackHeaderConfig.kt:164) at android.view.View.dispatchDetachedFromWindow(View.java:23298) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4203) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4195) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4195) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4195) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4195) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4195) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4195) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4195) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4195) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4195) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4195) at android.view.ViewGroup.removeViewInternal(ViewGroup.java:5844) 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.kt:398) at androidx.fragment.app.SpecialEffectsController.enqueue$lambda$4$lambda$2(SpecialEffectsController.kt:147) at androidx.fragment.app.SpecialEffectsController.$r8$lambda$TeCmoVW0hctjg0BNHLP6mPbAs5U(Unknown Source:0) at androidx.fragment.app.SpecialEffectsController$$ExternalSyntheticLambda0.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.cancel(SpecialEffectsController.kt:507) at androidx.fragment.app.SpecialEffectsController.forceCompleteAllOperations(SpecialEffectsController.kt:293) at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3037) at androidx.fragment.app.FragmentManager.dispatchDestroy(FragmentManager.java:2988) at androidx.fragment.app.FragmentController.dispatchDestroy(FragmentController.java:346) at androidx.fragment.app.FragmentActivity.onDestroy(FragmentActivity.java:258) at androidx.appcompat.app.AppCompatActivity.onDestroy(AppCompatActivity.java:283) at com.facebook.react.ReactActivity.onDestroy(ReactActivity.java:64) at android.app.Activity.performDestroy(Activity.java:9274) at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1491) at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:6136) at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:6181) at android.app.servertransaction.DestroyActivityItem.execute(DestroyActivityItem.java:47) at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:180) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:98) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2685) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:230) 2025-10-07 16:38:11.684 9169-9169 unknown:co...agerHelper com.swisspanama.encuentra24 E at android.os.Looper.loop(Looper.java:319) at android.app.ActivityThread.main(ActivityThread.java:8919) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

"dependencies": {
    "@expo-google-fonts/inter": "^0.2.3",
    "@expo/metro-runtime": "~5.0.5",
    "@google-cloud/recaptcha-enterprise-react-native": "18.7.0-beta01",
    "@gorhom/bottom-sheet": "5.1.5",
    "@hookform/resolvers": "^3.4.2",
    "@miblanchard/react-native-slider": "^2.6.0",
    "@react-native-documents/picker": "^10.1.3",
    "@react-native-firebase/analytics": "22.2.1",
    "@react-native-firebase/app": "22.2.1",
    "@react-native-firebase/auth": "22.2.1",
    "@react-native-firebase/crashlytics": "22.2.1",
    "@react-native-firebase/messaging": "22.2.1",
    "@react-native-google-signin/google-signin": "latest",
    "@react-native-picker/picker": "2.11.1",
    "@react-navigation/native": "^7.0.14",
    "@shopify/flash-list": "1.7.6",
    "babel-preset-expo": "~13.0.0",
    "debounce": "^2.2.0",
    "expo": "~53.0.23",
    "expo-apple-authentication": "~7.2.4",
    "expo-application": "~6.1.5",
    "expo-av": "15.1.7",
    "expo-build-properties": "~0.14.8",
    "expo-clipboard": "~7.1.5",
    "expo-constants": "~17.1.7",
    "expo-crypto": "~14.1.5",
    "expo-dev-client": "~5.2.4",
    "expo-device": "~7.1.4",
    "expo-font": "~13.3.2",
    "expo-image": "2.4.1",
    "expo-image-manipulator": "~13.1.7",
    "expo-image-picker": "~16.1.4",
    "expo-intent-launcher": "~12.1.5",
    "expo-linking": "7.1.7",
    "expo-location": "~18.1.6",
    "expo-notifications": "~0.31.4",
    "expo-router": "~5.1.7",
    "expo-secure-store": "~14.2.4",
    "expo-sharing": "~13.1.5",
    "expo-splash-screen": "~0.30.10",
    "expo-status-bar": "~2.2.3",
    "expo-system-ui": "~5.0.11",
    "expo-tracking-transparency": "~5.2.4",
    "expo-updates": "~0.28.17",
    "expo-web-browser": "~14.2.0",
    "html-entities": "^2.5.2",
    "i18next": "^25.4.2",
    "lucide-react-native": "^0.378.0",
    "mitt": "^3.0.1",
    "qs": "^6.12.1",
    "react": "19.0.0",
    "react-dom": "19.0.0",
    "react-helmet-async": "~2.0.4",
    "react-hook-form": "^7.51.5",
    "react-i18next": "^15.7.2",
    "react-native": "0.79.5",
    "react-native-email-link": "^1.16.0",
    "react-native-fbsdk-next": "^13.1.4",
    "react-native-gesture-handler": "~2.24.0",
    "react-native-get-random-values": "^1.11.0",
    "react-native-google-mobile-ads": "^15.4.0",
    "react-native-google-places-autocomplete": "^2.5.6",
    "react-native-maps": "1.20.1",
    "react-native-pager-view": "6.7.1",
    "react-native-paper": "^5.13.1",
    "react-native-reanimated": "~3.17.4",
    "react-native-reanimated-carousel": "^4.0.2",
    "react-native-safe-area-context": "5.4.0",
    "react-native-screens": "~4.11.1",
    "react-native-svg": "15.11.2",
    "react-native-vector-icons": "^10.1.0",
    "react-native-web": "^0.20.0",
    "react-native-webview": "13.13.5",
    "react-query": "^3.39.3",
    "zod": "^3.23.6"
  },
  "devDependencies": {
    "@babel/core": "^7.20.0",
    "@babel/preset-env": "^7.24.4",
    "@babel/runtime": "^7.24.4",
    "@commitlint/cli": "^19.3.0",
    "@commitlint/config-conventional": "^19.2.2",
    "@eslint/js": "^9.1.1",
    "@react-native-async-storage/async-storage": "2.1.2",
    "@react-native-community/datetimepicker": "8.4.1",
    "@react-native-community/eslint-config": "^3.2.0",
    "@react-native-community/slider": "^4.5.5",
    "@react-native/babel-preset": "0.79.5",
    "@react-native/eslint-config": "0.79.5",
    "@react-native/metro-config": "0.79.5",
    "@react-native/typescript-config": "0.79.5",
    "@storybook/addon-ondevice-actions": "^7.6.20",
    "@storybook/addon-ondevice-backgrounds": "^7.6.20",
    "@storybook/addon-ondevice-controls": "^7.6.20",
    "@storybook/addon-ondevice-notes": "^7.6.20",
    "@storybook/react-native": "^7.6.20",
    "@tsconfig/react-native": "^3.0.5",
    "@types/jest": "^29.5.12",
    "@types/node": "^20.12.11",
    "@types/react": "~19.0.10",
    "@types/storybook__react": "^5.2.1",
    "@types/validator": "^13.11.9",
    "@typescript-eslint/eslint-plugin": "^7.8.0",
    "@typescript-eslint/parser": "^7.8.0",
    "babel-jest": "^29.7.0",
    "babel-loader": "^8.3.0",
    "babel-plugin-module-resolver": "^5.0.2",
    "babel-plugin-transform-inline-environment-variables": "^0.4.4",
    "dotenv-cli": "^7.4.2",
    "eslint": "^8.57.0",
    "eslint-plugin-jest": "^28.2.0",
    "eslint-plugin-prettier": "^5.0.0",
    "eslint-plugin-react": "^7.34.1",
    "eslint-plugin-simple-import-sort": "^10.0.0",
    "globals": "^15.0.0",
    "husky": "^9.0.11",
    "jest": "^29.2.1",
    "jest-expo": "~53.0.10",
    "lint-staged": "^15.2.2",
    "metro-react-native-babel-preset": "^0.77.0",
    "prettier": "^3.2.5",
    "react-native-dotenv": "^3.4.11",
    "react-native-svg-transformer": "^1.5.0",
    "react-test-renderer": "18.2.0",
    "typescript": "~5.8.3",
    "typescript-eslint": "^7.8.0"
  }

dayron9110 avatar Oct 07 '25 21:10 dayron9110

Hi there,

I am encountering the same issue when an EAS Update is applied, it doesn't cause any visible crash, the update works fine, but if the user kills the app and reopens it, the update is gone.

"react-native": "0.79.5",
"react-native-screens": "4.13.1",
"expo": "53.0.20",
"expo-updates": "0.28.17",

Please note that it is still happening on the 4.13.1 release.

Due to this issue we are forced to deploy our updates via store releases which is a pain as we are maintaining tons of white label apps.

Has anyone worked on a patch or a workaround for this on 4.13.x ? I saw @justinkx idea of creating an expo module to handle a force restart of the app but I find it a bit overkilled and the experience feels a bit weird on the users side.

Here is the whole error stack if it can somehow help. Unhandled SoftException com.facebook.react.bridge.ReactNoCrashSoftException: Cannot get UIManager because the context doesn't contain an active CatalystInstance. at com.facebook.react.uimanager.UIManagerHelper.getUIManager(UIManagerHelper.java:82) at com.facebook.react.uimanager.UIManagerHelper.getEventDispatcher(UIManagerHelper.java:134) at com.facebook.react.uimanager.UIManagerHelper.getEventDispatcherForReactTag(UIManagerHelper.java:112) at com.swmansion.rnscreens.ScreenFragment.onDestroy(ScreenFragment.kt:325) at androidx.fragment.app.Fragment.performDestroy(Fragment.java:3381) at androidx.fragment.app.FragmentStateManager.destroy(FragmentStateManager.java:832) at androidx.fragment.app.FragmentStateManager.moveToExpectedState(FragmentStateManager.java:360) at androidx.fragment.app.SpecialEffectsController$FragmentStateManagerOperation.complete$fragment_release(SpecialEffectsController.kt:823) at androidx.fragment.app.SpecialEffectsController$Operation.cancel(SpecialEffectsController.kt:669) at androidx.fragment.app.SpecialEffectsController.forceCompleteAllOperations(SpecialEffectsController.kt:383) at androidx.fragment.app.SpecialEffectsController.executePendingOperations(SpecialEffectsController.kt:207) at androidx.fragment.app.FragmentManager.executeOpsTogether(FragmentManager.java:2227) 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.ScreenContainer.onUpdate(ScreenContainer.kt:423) at com.swmansion.rnscreens.ScreenContainer.performUpdates(ScreenContainer.kt:367) at com.swmansion.rnscreens.ScreenContainer.performUpdatesNow(ScreenContainer.kt:359) at com.swmansion.rnscreens.ScreenContainer.setFragmentManager(ScreenContainer.kt:138) at com.swmansion.rnscreens.ScreenContainer.setupFragmentManager(ScreenContainer.kt:208) at com.swmansion.rnscreens.ScreenContainer.onAttachedToWindow(ScreenContainer.kt:270) at android.view.View.dispatchAttachedToWindow(View.java:21971) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:4293) at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:4302) at android.view.ViewGroup.addViewInner(ViewGroup.java:6127) at android.view.ViewGroup.addView(ViewGroup.java:5903) at android.view.ViewGroup.addView(ViewGroup.java:5843) at com.facebook.react.uimanager.ViewGroupManager.addView(ViewGroupManager.java:49) at com.facebook.react.uimanager.NativeViewHierarchyManager.manageChildren(NativeViewHierarchyManager.java:541) at com.swmansion.reanimated.layoutReanimation.ReanimatedNativeHierarchyManager.manageChildren(ReanimatedNativeHierarchyManager.java:149) at com.facebook.react.uimanager.UIViewOperationQueue$ManageChildrenOperation.execute(UIViewOperationQueue.java:193) at com.facebook.react.uimanager.UIViewOperationQueue$1.run(UIViewOperationQueue.java:880) at com.facebook.react.uimanager.UIViewOperationQueue.flushPendingBatches(UIViewOperationQueue.java:991) at com.facebook.react.uimanager.UIViewOperationQueue.-$$Nest$mflushPendingBatches(Unknown Source:0) at com.facebook.react.uimanager.UIViewOperationQueue$DispatchUIFrameCallback.doFrameGuarded(UIViewOperationQueue.java:1051) 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(Unknown Source:0) at com.facebook.react.modules.core.ReactChoreographer$$ExternalSyntheticLambda0.doFrame(D8$$SyntheticClass:0) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1061) at android.view.Choreographer.doCallbacks(Choreographer.java:845) 2025-10-10 10:01:01.267 16016-16016 unknown:co...agerHelper com.getspacial.mobileapp E at android.view.Choreographer.doFrame(Choreographer.java:775) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1048) 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:8633) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:567) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1133)

pnogier avatar Oct 10 '25 14:10 pnogier

I am experiencing the same issue, it blocks our expo updates, a patch would be very appreciated

DonovanCharpin avatar Oct 10 '25 14:10 DonovanCharpin

@kkafar This error occurs in development mode:

npx expo prebuild --clean
expo run:android --device

After executing those commands the app closes. However, if I press the key to open the app again, it opens fine.

Unhandled SoftException com.facebook.react.bridge.ReactNoCrashSoftException: Cannot get UIManager because the context doesn't contain an active CatalystInstance. at com.facebook.react.uimanager.UIManagerHelper.getUIManager(UIManagerHelper.java:82) at com.facebook.react.uimanager.UIManagerHelper.getEventDispatcher(UIManagerHelper.java:134) at com.facebook.react.uimanager.UIManagerHelper.getEventDispatcherForReactTag(UIManagerHelper.java:112) at com.swmansion.rnscreens.ScreenStackHeaderConfig.onDetachedFromWindow(ScreenStackHeaderConfig.kt:164) at android.view.View.dispatchDetachedFromWindow(View.java:23298) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4203) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4195) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4195) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4195) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4195) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4195) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4195) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4195) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4195) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4195) at android.view.ViewGroup.dispatchDetachedFromWindow(ViewGroup.java:4195) at android.view.ViewGroup.removeViewInternal(ViewGroup.java:5844) 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.kt:398) at androidx.fragment.app.SpecialEffectsController.enqueue$lambda$4$lambda$2(SpecialEffectsController.kt:147) at androidx.fragment.app.SpecialEffectsController.$r8$lambda$TeCmoVW0hctjg0BNHLP6mPbAs5U(Unknown Source:0) at androidx.fragment.app.SpecialEffectsController$$ExternalSyntheticLambda0.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.cancel(SpecialEffectsController.kt:507) at androidx.fragment.app.SpecialEffectsController.forceCompleteAllOperations(SpecialEffectsController.kt:293) at androidx.fragment.app.FragmentManager.dispatchStateChange(FragmentManager.java:3037) at androidx.fragment.app.FragmentManager.dispatchDestroy(FragmentManager.java:2988) at androidx.fragment.app.FragmentController.dispatchDestroy(FragmentController.java:346) at androidx.fragment.app.FragmentActivity.onDestroy(FragmentActivity.java:258) at androidx.appcompat.app.AppCompatActivity.onDestroy(AppCompatActivity.java:283) at com.facebook.react.ReactActivity.onDestroy(ReactActivity.java:64) at android.app.Activity.performDestroy(Activity.java:9274) at android.app.Instrumentation.callActivityOnDestroy(Instrumentation.java:1491) at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:6136) at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:6181) at android.app.servertransaction.DestroyActivityItem.execute(DestroyActivityItem.java:47) at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45) at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:180) at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:98) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2685) at android.os.Handler.dispatchMessage(Handler.java:106) at android.os.Looper.loopOnce(Looper.java:230) 2025-10-07 16:38:11.684 9169-9169 unknown:co...agerHelper com.swisspanama.encuentra24 E at android.os.Looper.loop(Looper.java:319) at android.app.ActivityThread.main(ActivityThread.java:8919) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:578) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1103)

"dependencies": {
    "@expo-google-fonts/inter": "^0.2.3",
    "@expo/metro-runtime": "~5.0.5",
    "@google-cloud/recaptcha-enterprise-react-native": "18.7.0-beta01",
    "@gorhom/bottom-sheet": "5.1.5",
    "@hookform/resolvers": "^3.4.2",
    "@miblanchard/react-native-slider": "^2.6.0",
    "@react-native-documents/picker": "^10.1.3",
    "@react-native-firebase/analytics": "22.2.1",
    "@react-native-firebase/app": "22.2.1",
    "@react-native-firebase/auth": "22.2.1",
    "@react-native-firebase/crashlytics": "22.2.1",
    "@react-native-firebase/messaging": "22.2.1",
    "@react-native-google-signin/google-signin": "latest",
    "@react-native-picker/picker": "2.11.1",
    "@react-navigation/native": "^7.0.14",
    "@shopify/flash-list": "1.7.6",
    "babel-preset-expo": "~13.0.0",
    "debounce": "^2.2.0",
    "expo": "~53.0.23",
    "expo-apple-authentication": "~7.2.4",
    "expo-application": "~6.1.5",
    "expo-av": "15.1.7",
    "expo-build-properties": "~0.14.8",
    "expo-clipboard": "~7.1.5",
    "expo-constants": "~17.1.7",
    "expo-crypto": "~14.1.5",
    "expo-dev-client": "~5.2.4",
    "expo-device": "~7.1.4",
    "expo-font": "~13.3.2",
    "expo-image": "2.4.1",
    "expo-image-manipulator": "~13.1.7",
    "expo-image-picker": "~16.1.4",
    "expo-intent-launcher": "~12.1.5",
    "expo-linking": "7.1.7",
    "expo-location": "~18.1.6",
    "expo-notifications": "~0.31.4",
    "expo-router": "~5.1.7",
    "expo-secure-store": "~14.2.4",
    "expo-sharing": "~13.1.5",
    "expo-splash-screen": "~0.30.10",
    "expo-status-bar": "~2.2.3",
    "expo-system-ui": "~5.0.11",
    "expo-tracking-transparency": "~5.2.4",
    "expo-updates": "~0.28.17",
    "expo-web-browser": "~14.2.0",
    "html-entities": "^2.5.2",
    "i18next": "^25.4.2",
    "lucide-react-native": "^0.378.0",
    "mitt": "^3.0.1",
    "qs": "^6.12.1",
    "react": "19.0.0",
    "react-dom": "19.0.0",
    "react-helmet-async": "~2.0.4",
    "react-hook-form": "^7.51.5",
    "react-i18next": "^15.7.2",
    "react-native": "0.79.5",
    "react-native-email-link": "^1.16.0",
    "react-native-fbsdk-next": "^13.1.4",
    "react-native-gesture-handler": "~2.24.0",
    "react-native-get-random-values": "^1.11.0",
    "react-native-google-mobile-ads": "^15.4.0",
    "react-native-google-places-autocomplete": "^2.5.6",
    "react-native-maps": "1.20.1",
    "react-native-pager-view": "6.7.1",
    "react-native-paper": "^5.13.1",
    "react-native-reanimated": "~3.17.4",
    "react-native-reanimated-carousel": "^4.0.2",
    "react-native-safe-area-context": "5.4.0",
    "react-native-screens": "~4.11.1",
    "react-native-svg": "15.11.2",
    "react-native-vector-icons": "^10.1.0",
    "react-native-web": "^0.20.0",
    "react-native-webview": "13.13.5",
    "react-query": "^3.39.3",
    "zod": "^3.23.6"
  },
  "devDependencies": {
    "@babel/core": "^7.20.0",
    "@babel/preset-env": "^7.24.4",
    "@babel/runtime": "^7.24.4",
    "@commitlint/cli": "^19.3.0",
    "@commitlint/config-conventional": "^19.2.2",
    "@eslint/js": "^9.1.1",
    "@react-native-async-storage/async-storage": "2.1.2",
    "@react-native-community/datetimepicker": "8.4.1",
    "@react-native-community/eslint-config": "^3.2.0",
    "@react-native-community/slider": "^4.5.5",
    "@react-native/babel-preset": "0.79.5",
    "@react-native/eslint-config": "0.79.5",
    "@react-native/metro-config": "0.79.5",
    "@react-native/typescript-config": "0.79.5",
    "@storybook/addon-ondevice-actions": "^7.6.20",
    "@storybook/addon-ondevice-backgrounds": "^7.6.20",
    "@storybook/addon-ondevice-controls": "^7.6.20",
    "@storybook/addon-ondevice-notes": "^7.6.20",
    "@storybook/react-native": "^7.6.20",
    "@tsconfig/react-native": "^3.0.5",
    "@types/jest": "^29.5.12",
    "@types/node": "^20.12.11",
    "@types/react": "~19.0.10",
    "@types/storybook__react": "^5.2.1",
    "@types/validator": "^13.11.9",
    "@typescript-eslint/eslint-plugin": "^7.8.0",
    "@typescript-eslint/parser": "^7.8.0",
    "babel-jest": "^29.7.0",
    "babel-loader": "^8.3.0",
    "babel-plugin-module-resolver": "^5.0.2",
    "babel-plugin-transform-inline-environment-variables": "^0.4.4",
    "dotenv-cli": "^7.4.2",
    "eslint": "^8.57.0",
    "eslint-plugin-jest": "^28.2.0",
    "eslint-plugin-prettier": "^5.0.0",
    "eslint-plugin-react": "^7.34.1",
    "eslint-plugin-simple-import-sort": "^10.0.0",
    "globals": "^15.0.0",
    "husky": "^9.0.11",
    "jest": "^29.2.1",
    "jest-expo": "~53.0.10",
    "lint-staged": "^15.2.2",
    "metro-react-native-babel-preset": "^0.77.0",
    "prettier": "^3.2.5",
    "react-native-dotenv": "^3.4.11",
    "react-native-svg-transformer": "^1.5.0",
    "react-test-renderer": "18.2.0",
    "typescript": "~5.8.3",
    "typescript-eslint": "^7.8.0"
  }

I can confirm that the problem in my case occurred with the expo-web-browser and the experimentalLauncherActivity property set to true. After setting this property to false, the problem no longer occurred.

dayron9110 avatar Oct 14 '25 18:10 dayron9110

Hey, I'm still asking for reproduction.

Just out of the blue I got report that the issue might be related to https://github.com/facebook/react-native/issues/50274, and bumping from 0.77.0 to 0.77.3 resolved the issue. Haven't verified it, just writing what I just learned.

It might be worth keeping RN version up to the latest / trying latest patch versions.

kkafar avatar Oct 15 '25 14:10 kkafar

Hey, I'm still asking for reproduction.

Just out of the blue I got report that the issue might be related to facebook/react-native#50274, and bumping from 0.77.0 to 0.77.3 resolved the issue. Haven't verified it, just writing what I just learned.

It might be worth keeping RN version up to the latest / trying latest patch versions.

I'm getting this error on "react-native": "0.81.4", newArch false with react-native-screens": "^4.16.0", & "^4.17.0",

Unhandled SoftException
com.facebook.react.bridge.ReactNoCrashSoftException: Cannot get UIManager because the context doesn't contain an active CatalystInstance.
	at com.facebook.react.uimanager.UIManagerHelper.getUIManager(UIManagerHelper.kt:86)
	at com.facebook.react.uimanager.UIManagerHelper.getUIManager(UIManagerHelper.kt:46)
	at com.facebook.react.uimanager.UIManagerModule.dispatchViewManagerCommand(UIManagerModule.java:609)
	at com.facebook.react.uimanager.ReanimatedUIManager.dispatchViewManagerCommand(ReanimatedUIManager.java:170)
	at java.lang.reflect.Method.invoke(Native Method)
	at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.kt:217)
	at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.kt:134)
	at com.facebook.jni.NativeRunnable.run(Native Method)
	at android.os.Handler.handleCallback(Handler.java:942)
	at android.os.Handler.dispatchMessage(Handler.java:99)
	at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.kt:21)
	at android.os.Looper.loopOnce(Looper.java:201)
	at android.os.Looper.loop(Looper.java:288)
	at com.facebook.react.bridge.queue.MessageQueueThreadImpl$Companion.startNewBackgroundThread$lambda$1(MessageQueueThreadImpl.kt:175)
	at com.facebook.react.bridge.queue.MessageQueueThreadImpl$Companion.$r8$lambda$ldnZnqelhYFctGaUKkOKYj5rxo4(Unknown Source:0)
	at com.facebook.react.bridge.queue.MessageQueueThreadImpl$Companion$$ExternalSyntheticLambda0.run(D8$$SyntheticClass:0)
	at java.lang.Thread.run(Thread.java:1012)

Still trying to determine if this happening because of react-native-screens though

alexkev avatar Oct 15 '25 16:10 alexkev