-
Notifications
You must be signed in to change notification settings - Fork 23
Description
Describe the bug
The app freezes/crash in debug mode when navigating to a view containing an EnrichedTextInput after enabling the React Native Reanimated static feature flag DISABLE_COMMIT_PAUSING_MECHANISM.
This issue occurs when following the Reanimated performance optimization recommendations for fixing flickering/jittering while scrolling, as documented in the Reanimated Performance Guide.
The freeze is specifically triggered when:
- The
DISABLE_COMMIT_PAUSING_MECHANISMstatic feature flag is enabled in Reanimated - Running the app in debug mode on iOS
- Navigating to any view that contains an EnrichedTextInput component
To Reproduce
Steps to reproduce the behavior:
-
Enable the
DISABLE_COMMIT_PAUSING_MECHANISMstatic feature flag -
Set the experimental release level to enable
preventShadowTreeCommitExhaustionfeature flag as per Reanimated docs -
Run the app in debug mode on iOS simulator
-
Navigate to any view that contains an EnrichedTextInput component
-
Observe that the app freezes (UI becomes completely unresponsive)
Expected behavior
The EnrichedTextInput should load and render normally without causing the app to freeze, even when Reanimated performance optimization flags are enabled in debug mode.
Device:
- Device: iPhone 17 simulator
- OS: iOS 26
- react-native-enriched Version: 0.1.5
- React Native Version: 0.81.5
- React Native Reanimated Version: 4.1.5
- Build Mode: Debug (freeze occurs) | Release (works normally ✅)
- Platform: iOS only (Android is unaffected)
Additional Context
- The freeze only occurs in debug mode - release/production builds work normally
- The issue is iOS-specific - Android builds are not affected
- The issue appears to be related to the interaction between Reanimated's
DISABLE_COMMIT_PAUSING_MECHANISMflag and the EnrichedTextInput's WebView-based implementation - Disabling the
DISABLE_COMMIT_PAUSING_MECHANISMflag resolves the freeze, but this prevents the Reanimated scroll performance optimizations from working properly - This creates a trade-off between having smooth scrolling animations (with the flag enabled) and being able to use EnrichedTextInput in debug mode
Workaround
Currently, the only workaround is to disable the DISABLE_COMMIT_PAUSING_MECHANISM flag during development/debugging and only enable it for release builds. However, this makes it difficult to test the full functionality of the app in debug mode.