Skip to content

Revert RCTAnimatedModuleProvider change from D94244698 (#56100)#56100

Open
zeyap wants to merge 1 commit intofacebook:mainfrom
zeyap:export-D96611917
Open

Revert RCTAnimatedModuleProvider change from D94244698 (#56100)#56100
zeyap wants to merge 1 commit intofacebook:mainfrom
zeyap:export-D96611917

Conversation

@zeyap
Copy link
Contributor

@zeyap zeyap commented Mar 15, 2026

Summary:

Changelog:

[iOS] [Fixed] - Revert RCTAnimatedModuleProvider change from D94244698

D94244698 added a guard in RCTAnimatedModuleProvider that returns nullptr
when useSharedAnimatedBackend() is true, expecting DefaultTurboModules to
handle AnimatedModule creation instead.

However, on iOS the TurboModule resolution chain in RCTReactNativeFactory
delegates to the app-provided getTurboModule:jsInvoker: and returns whatever
the delegate returns — even nullptr — without falling through to
DefaultTurboModules.

This causes Invariant Violation: Native animated module is not available
on any surface using Animated.View (e.g. Marketplace PDP) when
react_fabric.enable_shared_animated_backend_ios is enabled.

Revert the RCTAnimatedModuleProvider change from D94244698 so it always
provides AnimatedModule when cxxNativeAnimatedEnabled is true, regardless
of useSharedAnimatedBackend. The shared backend path in DefaultTurboModules
still exists as fallback for non-iOS platforms.

Reviewed By: christophpurrer

Differential Revision: D96611917

@meta-cla meta-cla bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Mar 15, 2026
@meta-codesync
Copy link

meta-codesync bot commented Mar 15, 2026

@zeyap has exported this pull request. If you are a Meta employee, you can view the originating Diff in D96611917.

@meta-codesync meta-codesync bot changed the title Revert RCTAnimatedModuleProvider change from D94244698 Revert RCTAnimatedModuleProvider change from D94244698 (#56100) Mar 15, 2026
@zeyap zeyap force-pushed the export-D96611917 branch from f492634 to 55cb6d8 Compare March 15, 2026 00:05
zeyap added a commit to zeyap/react-native that referenced this pull request Mar 15, 2026
Summary:

## Changelog:

[iOS] [Fixed] - Revert RCTAnimatedModuleProvider change from D94244698

D94244698 added a guard in RCTAnimatedModuleProvider that returns nullptr
when useSharedAnimatedBackend() is true, expecting DefaultTurboModules to
handle AnimatedModule creation instead.

However, on iOS the TurboModule resolution chain in RCTReactNativeFactory
delegates to the app-provided getTurboModule:jsInvoker: and returns whatever
the delegate returns — even nullptr — without falling through to
DefaultTurboModules.

This causes `Invariant Violation: Native animated module is not available`
on any surface using Animated.View (e.g. Marketplace PDP) when
react_fabric.enable_shared_animated_backend_ios is enabled.

Revert the RCTAnimatedModuleProvider change from D94244698 so it always
provides AnimatedModule when cxxNativeAnimatedEnabled is true, regardless
of useSharedAnimatedBackend. The shared backend path in DefaultTurboModules
still exists as fallback for non-iOS platforms.

Reviewed By: christophpurrer

Differential Revision: D96611917
@zeyap zeyap force-pushed the export-D96611917 branch from 55cb6d8 to b2cf4ca Compare March 15, 2026 00:09
zeyap added a commit to zeyap/react-native that referenced this pull request Mar 15, 2026
Summary:

## Changelog:

[iOS] [Fixed] - Revert RCTAnimatedModuleProvider change from D94244698

D94244698 added a guard in RCTAnimatedModuleProvider that returns nullptr
when useSharedAnimatedBackend() is true, expecting DefaultTurboModules to
handle AnimatedModule creation instead.

However, on iOS the TurboModule resolution chain in RCTReactNativeFactory
delegates to the app-provided getTurboModule:jsInvoker: and returns whatever
the delegate returns — even nullptr — without falling through to
DefaultTurboModules.

This causes `Invariant Violation: Native animated module is not available`
on any surface using Animated.View (e.g. Marketplace PDP) when
react_fabric.enable_shared_animated_backend_ios is enabled.

Revert the RCTAnimatedModuleProvider change from D94244698 so it always
provides AnimatedModule when cxxNativeAnimatedEnabled is true, regardless
of useSharedAnimatedBackend. The shared backend path in DefaultTurboModules
still exists as fallback for non-iOS platforms.

Reviewed By: christophpurrer

Differential Revision: D96611917
@zeyap zeyap force-pushed the export-D96611917 branch from b2cf4ca to 6f2c37a Compare March 15, 2026 00:10
zeyap added a commit to zeyap/react-native that referenced this pull request Mar 15, 2026
Summary:
Pull Request resolved: facebook#56100

## Changelog:

[iOS] [Fixed] - Revert RCTAnimatedModuleProvider change from D94244698

D94244698 added a guard in RCTAnimatedModuleProvider that returns nullptr
when useSharedAnimatedBackend() is true, expecting DefaultTurboModules to
handle AnimatedModule creation instead.

However, on iOS the TurboModule resolution chain in RCTReactNativeFactory
delegates to the app-provided getTurboModule:jsInvoker: and returns whatever
the delegate returns — even nullptr — without falling through to
DefaultTurboModules.

This causes `Invariant Violation: Native animated module is not available`
on any surface using Animated.View (e.g. Marketplace PDP) when
react_fabric.enable_shared_animated_backend_ios is enabled.

Revert the RCTAnimatedModuleProvider change from D94244698 so it always
provides AnimatedModule when cxxNativeAnimatedEnabled is true, regardless
of useSharedAnimatedBackend. The shared backend path in DefaultTurboModules
still exists as fallback for non-iOS platforms.

Reviewed By: christophpurrer

Differential Revision: D96611917
Summary:
Pull Request resolved: facebook#56100

## Changelog:

[iOS] [Fixed] - Revert RCTAnimatedModuleProvider change from D94244698

D94244698 added a guard in RCTAnimatedModuleProvider that returns nullptr
when useSharedAnimatedBackend() is true, expecting DefaultTurboModules to
handle AnimatedModule creation instead.

However, on iOS the TurboModule resolution chain in RCTReactNativeFactory
delegates to the app-provided getTurboModule:jsInvoker: and returns whatever
the delegate returns — even nullptr — without falling through to
DefaultTurboModules.

This causes `Invariant Violation: Native animated module is not available`
on any surface using Animated.View (e.g. Marketplace PDP) when
react_fabric.enable_shared_animated_backend_ios is enabled.

Revert the RCTAnimatedModuleProvider change from D94244698 so it always
provides AnimatedModule when cxxNativeAnimatedEnabled is true, regardless
of useSharedAnimatedBackend. The shared backend path in DefaultTurboModules
still exists as fallback for non-iOS platforms.

Reviewed By: christophpurrer

Differential Revision: D96611917
@zeyap zeyap force-pushed the export-D96611917 branch from 6f2c37a to 9538c1e Compare March 15, 2026 00:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported meta-exported p: Facebook Partner: Facebook Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant