react-native: Multiple "NodePath has been removed so is read-only." errors

Old Version

0.72.7

New Version

0.73.0

Description

Upon starting the app (in dev mode), it starts bundling the modules, and then crashes with one of the following errors:

error: node_modules/react-native/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js: /app-native/node_modules/react-native/Libraries/Components/RefreshControl/AndroidSwipeRefreshLayoutNativeComponent.js: NodePath has been removed so is read-only.

error: node_modules/react-native/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js: /app-native/node_modules/react-native/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js: NodePath has been removed so is read-only.

error: node_modules/react-native/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js: /app-native/node_modules/react-native/Libraries/Components/TextInput/RCTInputAccessoryViewNativeComponent.js: NodePath has been removed so is read-only.

error: node_modules/react-native/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js: /app-native/node_modules/react-native/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js: NodePath has been removed so is read-only.

Steps to reproduce

  1. Run the updated app on iOS simulator
  2. See crash

Affected Platforms

Runtime - iOS

Output of npx react-native info

System:
  OS: macOS 14.2
  CPU: (8) arm64 Apple M2
  Memory: 293.70 MB / 16.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 20.9.0
    path: /private/var/folders/3y/swkjq1x101b76mzjgt4pm2d80000gp/T/xfs-2ea589c9/node
  Yarn:
    version: 4.0.2
    path: /private/var/folders/3y/swkjq1x101b76mzjgt4pm2d80000gp/T/xfs-2ea589c9/yarn
  npm:
    version: 10.1.0
    path: /usr/local/bin/npm
  Watchman: Not Found
Managers:
  CocoaPods:
    version: 1.14.3
    path: /opt/homebrew/bin/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 23.0
      - iOS 17.0
      - macOS 14.0
      - tvOS 17.0
      - watchOS 10.0
  Android SDK: Not Found
IDEs:
  Android Studio: Not Found
  Xcode:
    version: 15.0.1/15A507
    path: /usr/bin/xcodebuild
Languages:
  Java: Not Found
  Ruby:
    version: 2.6.10
    path: /usr/bin/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.73.0
    wanted: ^0.73.0
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: true
  newArchEnabled: false

Stacktrace or Logs

node_modules/react-native/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js: /app-native/node_modules/react-native/Libraries/Components/SafeAreaView/RCTSafeAreaViewNativeComponent.js: NodePath has been removed so is read-only.

RCTFatal
__28-[RCTCxxBridge handleError:]_block_invoke
_dispatch_call_block_and_release
_dispatch_client_callout
_dispatch_main_queue_drain
_dispatch_main_queue_callback_4CF
__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__
__CFRunLoopRun
CFRunLoopRunSpecific
GSEventRunModal
-[UIApplication _run]
UIApplicationMain
main
start_sim
0x0
0x0
node_modules/react-native/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js: /app-native/node_modules/react-native/Libraries/Components/ActivityIndicator/ActivityIndicatorViewNativeComponent.js: NodePath has been removed so is read-only.

RCTFatal
__28-[RCTCxxBridge handleError:]_block_invoke
_dispatch_call_block_and_release
_dispatch_client_callout
_dispatch_main_queue_drain
_dispatch_main_queue_callback_4CF
__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__
__CFRunLoopRun
CFRunLoopRunSpecific
GSEventRunModal
-[UIApplication _run]
UIApplicationMain
main
start_sim
0x0
0x0

Reproducer

I have no idea how to reproduce that on other apps 😦 The errors seem to be coming from everywhere, there are no error stacks, I don’t know what to add to break it.

Screenshots and Videos

No response

About this issue

  • Original URL
  • State: closed
  • Created 7 months ago
  • Comments: 26 (4 by maintainers)

Commits related to this issue

Most upvoted comments

I’m seeing this issue arise on 0.73.6 in an nx monorepo. Possible regression? Should I raise a new issue?

We need to update the versions on main to point to 0.74.x. The ones on the 0.73 branch need to point to latest 0.73. I’ll put up a PR

https://github.com/facebook/react-native/pull/42081 for main

@PaulCunningham697 I finally got over this by matching the babel versions in my dependency declarations to the correct metro versions. What do you have for those?

Can you share your package.json please.

I can confirm it’s a dependency issue indeed!

Adding the following Yarn resolutions:

    "@react-native/babel-preset@*": "npm:@react-native/babel-preset@^0.73.18",
    "@react-native/babel-plugin-codegen@*": "npm:@react-native/babel-plugin-codegen@^0.73.0",
    "@react-native/codegen@*": "npm:@react-native/codegen@^0.73.2",

fixed the issue for me. 🥳