Skip to content

[iOS] EnrichedTextInput causes freeze in debug mode when DISABLE_COMMIT_PAUSING_MECHANISM is enabled #267

@jesussfl

Description

@jesussfl

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_MECHANISM static 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:

  1. Enable the DISABLE_COMMIT_PAUSING_MECHANISM static feature flag

  2. Set the experimental release level to enable preventShadowTreeCommitExhaustion feature flag as per Reanimated docs

  3. Run the app in debug mode on iOS simulator

  4. Navigate to any view that contains an EnrichedTextInput component

  5. 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_MECHANISM flag and the EnrichedTextInput's WebView-based implementation
  • Disabling the DISABLE_COMMIT_PAUSING_MECHANISM flag 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.

Related Documentation

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions