Skip to content

[iOS] Reload crashes the app while a view command is still queued #59721

Open

Description

@Nezz

Description

On iOS, reloading the app while a view command is still queued crashes it on the JS thread with EXC_BAD_ACCESS.

scrollRef.current?.scrollTo({ y: 0, animated: false });
DevSettings.reload();
busyWait(100); // keeps the JS thread in this task for 100 ms

Likely the same crash was reported in #58601 and #53774 but without a repro.

Steps to reproduce

  1. Clone the reproducer and install it:
    npm install
    cd ios && bundle install && bundle exec pod install && cd ..
  2. Start Metro with npx react-native start, then build and run on an iOS simulator with npx react-native run-ios.
  3. The app reloads itself about 1 s after every mount, and usually crashes on the first reload.

My setup: Debug build, prebuilt React.xcframework, iPhone 17 simulator, iOS 26.5

To count the crashes, quit the app and run ./loop.sh default 20. It relaunches the app for each trial and prints default: N crashes in 20 reloads.

React Native Version

0.88.1

Affected Platforms

Runtime - iOS

Areas

Fabric - The New Renderer

Output of npx @react-native-community/cli info

System:
  OS: macOS 26.7.1
  CPU: (14) arm64 Apple M4 Pro
  Memory: 11.90 GB / 48.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 24.22.1
    path: /opt/homebrew/bin/node
  Yarn: Not Found
  npm:
    version: 11.19.1
    path: /opt/homebrew/bin/npm
  Watchman: Not Found
Managers:
  CocoaPods:
    version: 1.17.0
    path: /opt/homebrew/bin/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 27.0
      - iOS 27.1
      - macOS 27.0
      - tvOS 27.0
      - visionOS 27.0
      - watchOS 27.0
  Android SDK: Not Found
IDEs:
  Android Studio: Not Found
  Xcode:
    version: 27.1/27A9275
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.20.1
    path: /usr/bin/javac
  Ruby:
    version: 4.0.9
    path: /opt/homebrew/bin/ruby
npmPackages:
  "@react-native-community/cli":
    installed: 20.2.0
    wanted: 20.2.0
  react:
    installed: 19.3.0
    wanted: 19.3.0
  react-native:
    installed: 0.88.1
    wanted: 0.88.1
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: true
iOS:
  hermesEnabled: true
  newArchEnabled: true

Stacktrace or Logs

Exception: EXC_BAD_ACCESS (SIGBUS) KERN_PROTECTION_FAILURE at 0x00000001090a659c
Crashed thread: com.facebook.react.runtime.JavaScript
0   ???                          0x1090a659c
1   ReproducerApp.debug.dylib    std::__invoke<facebook::react::Scheduler::uiManagerDidDispatchCommand(...)::$_0&>(...) (invoke.h:90)
2   ReproducerApp.debug.dylib    std::__invoke_void_return_wrapper<void, true>::__call<...uiManagerDidDispatchCommand(...)::$_0&>(...) (invoke.h:350)
3   ReproducerApp.debug.dylib    std::__invoke_r<void, ...uiManagerDidDispatchCommand(...)::$_0&>(...) (invoke.h:356)
4   ReproducerApp.debug.dylib    std::__function::__func<facebook::react::Scheduler::uiManagerDidDispatchCommand(...)::$_0, void ()>::operator()() (function.h:172)
5   ReproducerApp.debug.dylib    std::__function::__value_func<void ()>::operator()() const (function.h:273)
6   ReproducerApp.debug.dylib    std::function<void ()>::operator()() const (function.h:754)
7   ReproducerApp.debug.dylib    facebook::react::RuntimeScheduler_Modern::updateRendering(facebook::jsi::Runtime&, facebook::react::HighResTimeStamp) (RuntimeScheduler_Modern.cpp:400)
8   ReproducerApp.debug.dylib    facebook::react::RuntimeScheduler_Modern::runEventLoopTick(facebook::jsi::Runtime&, facebook::react::Task&) (RuntimeScheduler_Modern.cpp:343)
9   ReproducerApp.debug.dylib    facebook::react::RuntimeScheduler_Modern::runEventLoop(facebook::jsi::Runtime&) (RuntimeScheduler_Modern.cpp:287)
10  ReproducerApp.debug.dylib    facebook::react::RuntimeScheduler_Modern::scheduleEventLoop()::$_0::operator()(facebook::jsi::Runtime&) const (RuntimeScheduler_Modern.cpp:272)

MANDATORY Reproducer

https://github.com/Nezz/expo-repro/tree/repro/ReloadSchedulerCrash

Screenshots and Videos

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions