Description
I am using form sheets from the react-navigation + react-native-screens libraries. In RNGH v3, when you tap the backdrop of an open form sheet, the app crashes with the following trace:
java.lang.IllegalStateException: [RNScreens] DimmingView should never be asked for the view tag!
com.swmansion.rnscreens.bottomsheet.DimmingView.reactTagForTouch(DimmingView.kt:66)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.recordViewHandlersForPointer(GestureHandlerOrchestrator.kt:577)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.traverseWithPointerEvents(GestureHandlerOrchestrator.kt:707)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.extractGestureHandlers(GestureHandlerOrchestrator.kt:642)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.traverseWithPointerEvents(GestureHandlerOrchestrator.kt:681)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.extractGestureHandlers(GestureHandlerOrchestrator.kt:642)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.traverseWithPointerEvents(GestureHandlerOrchestrator.kt:701)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.extractGestureHandlers(GestureHandlerOrchestrator.kt:642)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.traverseWithPointerEvents(GestureHandlerOrchestrator.kt:681)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.extractGestureHandlers(GestureHandlerOrchestrator.kt:642)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.traverseWithPointerEvents(GestureHandlerOrchestrator.kt:681)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.extractGestureHandlers(GestureHandlerOrchestrator.kt:642)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.traverseWithPointerEvents(GestureHandlerOrchestrator.kt:681)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.extractGestureHandlers(GestureHandlerOrchestrator.kt:642)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.traverseWithPointerEvents(GestureHandlerOrchestrator.kt:701)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.extractGestureHandlers(GestureHandlerOrchestrator.kt:642)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.traverseWithPointerEvents(GestureHandlerOrchestrator.kt:701)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.extractGestureHandlers(GestureHandlerOrchestrator.kt:642)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.traverseWithPointerEvents(GestureHandlerOrchestrator.kt:701)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.extractGestureHandlers(GestureHandlerOrchestrator.kt:642)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.traverseWithPointerEvents(GestureHandlerOrchestrator.kt:701)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.extractGestureHandlers(GestureHandlerOrchestrator.kt:642)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.traverseWithPointerEvents(GestureHandlerOrchestrator.kt:681)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.extractGestureHandlers(GestureHandlerOrchestrator.kt:642)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.traverseWithPointerEvents(GestureHandlerOrchestrator.kt:701)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.extractGestureHandlers(GestureHandlerOrchestrator.kt:642)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.traverseWithPointerEvents(GestureHandlerOrchestrator.kt:701)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.extractGestureHandlers(GestureHandlerOrchestrator.kt:642)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.traverseWithPointerEvents(GestureHandlerOrchestrator.kt:701)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.extractGestureHandlers(GestureHandlerOrchestrator.kt:642)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.traverseWithPointerEvents(GestureHandlerOrchestrator.kt:701)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.extractGestureHandlers(GestureHandlerOrchestrator.kt:604)
com.swmansion.gesturehandler.core.GestureHandlerOrchestrator.onTouchEvent(GestureHandlerOrchestrator.kt:56)
com.swmansion.gesturehandler.react.RNGestureHandlerRootHelper.dispatchTouchEvent(RNGestureHandlerRootHelper.kt:130)
com.swmansion.gesturehandler.react.RNGestureHandlerRootView.dispatchTouchEvent(RNGestureHandlerRootView.kt:58)
android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3122)
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2746)
android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3122)
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2746)
android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3122)
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2746)
android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3122)
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2746)
android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3122)
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2746)
android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3122)
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2746)
android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3122)
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2746)
android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3122)
android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2746)
com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:458)
com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1980)
android.app.Activity.dispatchTouchEvent(Activity.java:4533)
androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(WindowCallbackWrapper.java:69)
expo.modules.devmenu.detectors.InterceptingWindowCallback.dispatchTouchEvent(InterceptingWindowCallback.kt:32)
com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:416)
android.view.View.dispatchPointerEvent(View.java:16729)
android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:7947)
android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:7710)
android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7106)
android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7163)
android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7129)
android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:7295)
android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:7137)
android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:7352)
android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7110)
android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:7163)
android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:7129)
android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:7137)
android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:7110)
android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:10214)
android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:10165)
android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:10134)
android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:10356)
android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:295)
android.os.MessageQueue.nativePollOnce(Native Method)
android.os.MessageQueue.next(MessageQueue.java:346)
android.os.Looper.loopOnce(Looper.java:189)
android.os.Looper.loop(Looper.java:317)
android.app.ActivityThread.main(ActivityThread.java:8705)
java.lang.reflect.Method.invoke(Native Method)
com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:580)
com.android.internal.os.ZygoteInit.main(ZygoteInit.java:886)
Reproduction video:
Screen.Recording.2026-06-04.at.3.07.42.PM.mov
Steps to reproduce
Checkout the repo
Run yarn android
Tap the 'open form sheet' button
Tap the backdrop and the app will crash
A link to a Gist , an Expo Snack or a link to a repository based on this template that reproduces the bug.
https://github.com/iankberry/formsheet-android-backdrop-crash
Gesture Handler version
3.0.0
React Native version
0.85.3
Platforms
Android
JavaScript runtime
None
Workflow
None
Architecture
None
Build type
None
Device
None
Device model
No response
Acknowledgements
Yes
Description
I am using form sheets from the react-navigation + react-native-screens libraries. In RNGH v3, when you tap the backdrop of an open form sheet, the app crashes with the following trace:
Reproduction video:
Screen.Recording.2026-06-04.at.3.07.42.PM.mov
Steps to reproduce
yarn androidA link to a Gist, an Expo Snack or a link to a repository based on this template that reproduces the bug.
https://github.com/iankberry/formsheet-android-backdrop-crash
Gesture Handler version
3.0.0
React Native version
0.85.3
Platforms
Android
JavaScript runtime
None
Workflow
None
Architecture
None
Build type
None
Device
None
Device model
No response
Acknowledgements
Yes