You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
iOS: shape animator TurboModules return another module's SpecJSI, crashing on first call (New Architecture) #4301
@rnmapbox/maps 10.3.5, React Native 0.86.2, Expo SDK 57, New Architecture (RN 0.86 has no old architecture to fall back on).
What happens
Calling __experimental.MovePointShapeAnimator on iOS takes the app down at the first call — the new MovePointShapeAnimator([lng, lat]) that reaches NativeRNMBXMovePointShapeAnimatorModule.generate. Android is unaffected.
Cause
Both iOS shape-animator modules return another module's generated spec from getTurboModule::
ios/RNMBX/ShapeAnimators/RNMBXChangeLineOffsetsShapeAnimatorModule.mm returns NativeRNMBXShapeSourceModuleSpecJSI in the same place.
Every other module in the package returns its own spec (RNMBXCameraModule, RNMBXImageModule, RNMBXShapeSourceModule, RNMBXViewportModule, RNMBXPointAnnotationModule), so these two look like a copy-paste slip. The effect is that the module is registered but answers to a spec that does not declare generate / moveTo.
The Kotlin modules are registered correctly, which is why this is invisible on Android.
Both spec names come straight from src/specs/NativeRNMBXMovePointShapeAnimatorModule.ts and src/specs/NativeRNMBXChangeLineOffsetsShapeAnimatorModule.ts, and match the naming of the generated Android specs. Happy to send this as a PR if that is easier.
Reproduction
Any New-Architecture iOS app that renders a ShapeSource whose shape is a MovePointShapeAnimator:
Activity
github-actions commentedon Sep 18, 2026
Lint failed 😭
Please fix the errors in your code example - More info.: