software-mansion / react-native-reanimated

React Native's Animated library reimplemented
https://docs.swmansion.com/react-native-reanimated/
MIT License
8.87k stars 1.3k forks source link

3.12.0 crashes with 'property is not configurable' #6082

Closed giantslogik closed 3 months ago

giantslogik commented 3 months ago

Description

Upgraded to v3.12.0 . App crashes on launch with:

Screenshot 2024-06-06 at 1 50 00 PM

Steps to reproduce

  1. Did not have this issue on previous versions.
  2. Upgraded to 3.12.0

Snack or a link to a repository

No snack.

Reanimated version

3.12.0

React Native version

0.73.6

Platforms

Android, iOS

JavaScript runtime

Hermes

Workflow

React Native

Architecture

Paper (Old Architecture)

Build type

Debug app & dev bundle

Device

iOS simulator

Device model

No response

Acknowledgements

Yes

github-actions[bot] commented 3 months ago

Hey! 👋

The issue doesn't seem to contain a minimal reproduction.

Could you provide a snack or a link to a GitHub repository under your username that reproduces the problem?

giantslogik commented 3 months ago

The call stack is:

TypeError: property is not configurable

This error is located at: in Unknown (created by _c) in RCTView (created by View) in View (created by _c) in _c in RCTView (created by View) in View in Unknown (created by GenericTouchable) in RNGestureHandlerButton (created by NativeViewGestureHandler) in NativeViewGestureHandler (created by RNGestureHandlerButton) in RNGestureHandlerButton (created by BaseButton) in BaseButton (created by GenericTouchable) in GenericTouchable (created by TouchableOpacity) in TouchableOpacity in Unknown in RCTView (created by View) in View in Unknown in RCTView (created by View) in View in Unknown (created by ViewRenderer) in RCTView (created by View) in View (created by ViewRenderer) in ViewRenderer (created by RecyclerListView) in RCTView (created by View) in View (created by ScrollComponent) in RCTView (created by View) in View (created by ScrollComponent) in RCTScrollContentView (created by ScrollView) in RCTScrollView (created by ScrollView) in ScrollView (created by ScrollView) in ScrollView (created by ScrollComponent) in ScrollComponent (created by RecyclerListView)

giantslogik commented 3 months ago

Seems this PR is the root cause: https://github.com/software-mansion/react-native-reanimated/pull/5548 .

efstathiosntonas commented 3 months ago

duplicate: https://github.com/software-mansion/react-native-reanimated/issues/6066

giantslogik commented 3 months ago

@efstathiosntonas. I didn't find any commonality in the call stack. I'm going to patch package a revert to https://github.com/software-mansion/react-native-reanimated/pull/5548 to see if it fixes the crash. That PR looks like it was intended to improve logging / warnings.

giantslogik commented 3 months ago

@efstathiosntonas I reverted the PR that broke 3.12.0. Here is the patch package. It fixed my crash. Perhaps it will fix https://github.com/software-mansion/react-native-reanimated/issues/6066 also.

patches/react-native-reanimated+3.12.0.patch react-native-reanimated+3.12.0.patch

efstathiosntonas commented 3 months ago

@giantslogik thanks for the patch, it's exactly the same issue as #6066, I just didn't add the full trace.

Fact is, the better logging on 3.12.0 helped me spot a small issue so reverting it is not the way to go imho, it needs to be reworked so it won't crash.

szydlovsky commented 3 months ago

Hey @giantslogik @efstathiosntonas, the PR owner is currently a bit unreachable, but I will bring this to his attention next week! Thanks for the patience and the patch 😄

qper228 commented 3 months ago

@efstathiosntonas I reverted the PR that broke 3.12.0. Here is the patch package. It fixed my crash. Perhaps it will fix #6066 also.

patches/react-native-reanimated+3.12.0.patch react-native-reanimated+3.12.0.patch

worked thx

dniccum commented 3 months ago

I exhibited the same error. Apparently the cause of my error was the fact that I was doing some basic logic just within the useAnimatedStyle hook:

const animatedButtonsStyle = useAnimatedStyle(() => {
    const hasTags: boolean = connection?.tags && connection?.tags.filter(tag => tag.type.value === 'connection').length > 0
    const start: number = hasTags ? 90 : 60
    const buttonHeight: number = 56
        return {
            ...
        }
})

The hook did not like this. The main culprit was the hasTags variable.

tjzel commented 3 months ago

Duplicate of #6066