Description
Description: 0.86 stopped addViewAt, updateLayout, updateProps, deleteView and removeViewAt from crashing on a missing view, but updatePadding (line 876) still throws. It quotes the 0.86 source and lists the other operations that still throw (updateOverflowInset, updateState, setJSResponder, sendAccessibilityEvent). It also suggests a fix in the same style as updateLayout, and links #55177, #58526 and #58527.
Steps to reproduce: honest that it's a production race we can't reproduce on demand, with the device pattern: 100% Android 12 on 32-bit low-end phones, mostly vivo, during launch or quick tab switches. It also notes the crash ran about 3× higher through addViewAt on 0.82.
Versions: RN 0.86.0, React 19.2.8, New Architecture and Hermes on, and the versions of Reanimated, Screens, Gesture Handler, pager-view, bottom-sheet and React Navigation.
Stack trace: the full updatePadding trace. All sampled crashes share it; only the tag differs.
Reproducer: none available; offers to test a patched build.
Steps to reproduce
Honest that it's a production race we can't reproduce on demand, with the device pattern: 100% Android 12 on 32-bit low-end phones, mostly vivo, during launch or quick tab switches. It also notes the crash ran about 3× higher through addViewAt on 0.82.
React Native Version
0.86.0
Affected Platforms
Runtime - Android
Output of npx @react-native-community/cli info
Stacktrace or Logs
Fatal Exception: java.lang.IllegalStateException: Unable to remove a view from a view that is not a ViewGroup. ParentTag: 12156 - Tag: 12154 - Index: 0
at com.facebook.react.fabric.mounting.SurfaceMountingManager.removeViewAt(SurfaceMountingManager.kt:444)
at com.facebook.react.fabric.mounting.mountitems.IntBufferBatchMountItem.execute(IntBufferBatchMountItem.kt:125)
at com.facebook.react.fabric.mounting.MountItemDispatcher.executeOrEnqueue(MountItemDispatcher.kt:379)
at com.facebook.react.fabric.mounting.MountItemDispatcher.dispatchMountItems$lambda$7$lambda$6(MountItemDispatcher.kt:269)
at com.facebook.react.internal.tracing.PerformanceTracer.trace(PerformanceTracer.kt:46)
at com.facebook.react.internal.tracing.PerformanceTracer.trace(PerformanceTracer.kt:35)
at com.facebook.react.fabric.mounting.MountItemDispatcher.dispatchMountItems(MountItemDispatcher.kt:250)
at com.facebook.react.fabric.mounting.MountItemDispatcher.tryDispatchMountItems(MountItemDispatcher.kt:94)
at com.facebook.react.fabric.FabricUIManager$DispatchUIFrameCallback.doFrameGuarded(FabricUIManager.java:1624)
at com.facebook.react.uimanager.GuardedFrameCallback.doFrame(GuardedFrameCallback.kt:42)
at com.facebook.react.modules.core.ReactChoreographer.frameCallback$lambda$1(ReactChoreographer.kt:58)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:1184)
at android.view.Choreographer.doCallbacks(Choreographer.java:986)
at android.view.Choreographer.doFrame(Choreographer.java:907)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:1171)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loopOnce(Looper.java:233)
at android.os.Looper.loop(Looper.java:334)
at android.app.ActivityThread.main(ActivityThread.java:8333)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:582)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1065)
MANDATORY Reproducer
n/A
Screenshots and Videos
No response
Description
Description: 0.86 stopped addViewAt, updateLayout, updateProps, deleteView and removeViewAt from crashing on a missing view, but updatePadding (line 876) still throws. It quotes the 0.86 source and lists the other operations that still throw (updateOverflowInset, updateState, setJSResponder, sendAccessibilityEvent). It also suggests a fix in the same style as updateLayout, and links #55177, #58526 and #58527.
Steps to reproduce: honest that it's a production race we can't reproduce on demand, with the device pattern: 100% Android 12 on 32-bit low-end phones, mostly vivo, during launch or quick tab switches. It also notes the crash ran about 3× higher through addViewAt on 0.82.
Versions: RN 0.86.0, React 19.2.8, New Architecture and Hermes on, and the versions of Reanimated, Screens, Gesture Handler, pager-view, bottom-sheet and React Navigation.
Stack trace: the full updatePadding trace. All sampled crashes share it; only the tag differs.
Reproducer: none available; offers to test a patched build.
Steps to reproduce
Honest that it's a production race we can't reproduce on demand, with the device pattern: 100% Android 12 on 32-bit low-end phones, mostly vivo, during launch or quick tab switches. It also notes the crash ran about 3× higher through addViewAt on 0.82.
React Native Version
0.86.0
Affected Platforms
Runtime - Android
Output of
npx @react-native-community/cli infoStacktrace or Logs
MANDATORY Reproducer
n/A
Screenshots and Videos
No response