Skip to content

Fatal Exception: RCTFatalException: Unhandled JS Exception: Error: Unsupported top level event type "onGestureHandlerStateChange" dispatched #4013

@haozhutw

Description

@haozhutw

Description

I searched the related issues including #320, #783, #849, #1222 and tried all the solutions, none of those worked. This crash still happens in the production environment.

I installed react-native-gesture-handler for react-navigation, I'm using react-navigation 7.x.
Here are the version info.

"@react-navigation/bottom-tabs": "^7.3.15",
"@react-navigation/native": "^7.1.11",
"@react-navigation/native-stack": "^7.3.16",
"@react-navigation/stack": "^7.3.4",
"react": "19.1.0",
"react-native": "0.81.5",
"react-native-gesture-handler": "^2.29.1",

....
in devDependencies

"typescript": "^5.8.3"

I didn't have react-native-reanimated and react-native-worklets installed.
I'm still using old architecture for the project with hermes enabled.

Here's the crash log

Fatal Exception: RCTFatalException: Unhandled JS Exception: Error: Unsupported top level event type "onGestureHandlerStateChange" dispatched
0  CoreFoundation                 0xc5964 __exceptionPreprocess
1  libobjc.A.dylib                0x31814 objc_exception_throw
2  MyApp                          0x2a056c RCTFormatError + 167 (RCTAssert.m:167)
3  MyApp                          0x310dec -[RCTExceptionsManager reportFatal:stack:exceptionId:extraDataAsJSON:] + 82 (RCTExceptionsManager.mm:82)
4  MyApp                          0x311828 -[RCTExceptionsManager reportException:] + 159 (RCTExceptionsManager.mm:159)
5  CoreFoundation                 0x456c4 __invoking___
6  CoreFoundation                 0x45550 -[NSInvocation invoke]
7  CoreFoundation                 0x151328 -[NSInvocation invokeWithTarget:]
8  MyApp                          0x2d1d44 -[RCTModuleMethod invokeWithBridge:module:arguments:] + 588 (RCTModuleMethod.mm:588)
9  MyApp                          0x2d3e88 facebook::react::invokeInner(RCTBridge*, RCTModuleData*, unsigned int, folly::dynamic const&, int, (anonymous namespace)::SchedulingContext) + 198 (RCTNativeModule.mm:198)
10 MyApp                          0x2d3aec invocation function for block in facebook::react::RCTNativeModule::invoke(unsigned int, folly::dynamic&&, int) + 299 (optional:299)
11 libdispatch.dylib              0x1adc _dispatch_call_block_and_release
12 libdispatch.dylib              0x1b7fc _dispatch_client_callout
13 libdispatch.dylib              0xa468 _dispatch_lane_serial_drain
14 libdispatch.dylib              0xaf44 _dispatch_lane_invoke
15 libdispatch.dylib              0x153ec _dispatch_root_queue_drain_deferred_wlh
16 libdispatch.dylib              0x14ce4 _dispatch_workloop_worker_thread
17 libsystem_pthread.dylib        0x13b8 _pthread_wqthread
18 libsystem_pthread.dylib        0x8c0 start_wqthread
        

Any suggestion is appreciated~

Steps to reproduce

cannot reproduce this issue, it's reported by Firebase and keeps happening in the production environment.

A link to a Gist, an Expo Snack or a link to a repository based on this template that reproduces the bug.

tbd

Gesture Handler version

2.29.1

React Native version

0.81.5

Platforms

iOS

JavaScript runtime

Hermes

Workflow

React Native (without Expo)

Architecture

Old Architecture (Paper)

Build type

Release mode

Device

Real device

Device model

iPhone 15 Pro Max, iPhone 11, iPhone 16e, iPhone 17 ProMax, etc. It happens on all iPhones

Acknowledgements

Yes

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions