rive-app / rive-app/rive-react-native
App Hanging errors on iOS
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 783
- Forks
- 81
- Avg merge
- 3d 6h
- Merged PRs (30d)
- 3
Description
Description
We recently released a version of our app that uses:
rive-react-native@9.3.4
expo@53
react-native@0.79.3 (new architecture enabled)
Since then, we've had a steady stream of App Hanging errors on iOS collected through Sentry. Often, the stack traces refer to rive, e.g.:
RiveRuntime 0x10770e1d4 rive::PointsPathBase::isTypeOf
RiveRuntime 0x1076af9c8 rive::ClippingShape::onAddedClean
RiveRuntime 0x10769a894 rive::Artboard::initialize
RiveRuntime 0x1076d7158 rive::ImportStack::makeLatest
RiveRuntime 0x1076d3828 rive::File::read
RiveRuntime 0x1076d2730 rive::File::import
RiveRuntime 0x10766c6c0 rive::File::import (file.hpp:71)
RiveRuntime 0x10766c340 -[RiveFile import:byteLength:loadCdn:customAssetLoader:error:] (RiveFile.mm:364)
RiveRuntime 0x10766b670 -[RiveFile initWithBytes:byteLength:loadCdn:customAssetLoader:error:] (RiveFile.mm:136)
RiveRuntime 0x10766b7f8 -[RiveFile initWithData:loadCdn:customAssetLoader:error:] (RiveFile.mm:167)
RiveRuntime 0x10766f908 RiveFile.init (RiveFile+Extensions.swift:16)
RiveRuntime 0x1076905bc RiveModel.init (RiveModel.swift:29)
RiveRuntime 0x10768b850 RiveModel.__allocating_init (RiveModel.swift)
RiveRuntime 0x10768b850 RiveViewModel.init (RiveViewModel.swift:97)
RiveRuntime 0x107685f60 RiveViewModel.init (<compiler-generated>)
Emy 0x105b3a3d0 RiveReactNativeView.configureViewModelFromResource
Emy 0x105b39358 RiveReactNativeView.didSetProps
Emy 0x105b39604 RiveReactNativeView.didSetProps
Emy 0x104fdc4ec -[RCTLegacyViewManagerInteropCoordinator setProps:forView:]
Emy 0x104d4e0a0 -[RCTLegacyViewManagerInteropCoordinatorAdapter setProps:]
Emy 0x104d4d888 __60-[RCTLegacyViewManagerInteropComponentView finalizeUpdates:]_block_invoke
Emy 0x104d4d410 -[RCTLegacyViewManagerInteropComponentView finalizeUpdates:]
Emy 0x104d553b0 _ZNSt3__110__function6__funcIZ41-[RCTMountingManager performTransaction:]E3$_1NS_9allocatorIS2_EEFvRKN8facebook5react19MountingTransactionERKNS6_16SurfaceTelemetryEEEclES9_SC_
Emy 0x104fed908 facebook::react::TelemetryController::pullTransaction
Emy 0x104d540bc -[RCTMountingManager performTransaction:]
Emy 0x104d53fd8 -[RCTMountingManager initiateTransaction:]
Emy 0x104d6f2a8 -[RCTSurfacePresenter schedulerShouldRenderTransactions:]
Emy 0x104d64c10 SchedulerDelegateProxy::schedulerShouldRenderTransactions
Emy 0x104fdef30 facebook::react::Scheduler::uiManagerDidFinishTransaction
Emy 0x104ff35ac facebook::react::UIManager::shadowTreeDidFinishTransaction
Emy 0x104fe6a4c facebook::react::ShadowTree::mount
Emy 0x104fe7290 facebook::react::ShadowTree::tryCommit
Emy 0x104fe6b2c facebook::react::ShadowTree::commit
Emy 0x104e2d20c std::__1::__function::__func<T>::operator()
Emy 0x104fe8d38 facebook::react::ShadowTreeRegistry::visit
Emy 0x104e2d0b0 reanimated::ReanimatedMountHook::shadowTreeDidMount
Emy 0x104ff3700 facebook::react::UIManager::reportMount
libdispatch 0x1a1e0131c _dispatch_call_block_and_release
libdispatch 0x1a1e02ea8 _dispatch_client_callout
libdispatch 0x1a1e116a0 _dispatch_main_queue_drain
libdispatch 0x1a1e112f0 _dispatch_main_queue_callback_4CF
CoreFoundation 0x19a9cbc24 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__
CoreFoundation 0x19a9ad55c __CFRunLoopRun
CoreFoundation 0x19a9b23e8 CFRunLoopRunSpecific
GraphicsServices 0x1d5e4f358 GSEventRunModal
UIKitCore 0x19cd3f6e4 -[UIApplication _run]
UIKitCore 0x19cd3f348 UIApplicationMain
Emy 0x1043f9b40 main
0x1b9e8adec <redacted>
RiveRuntime 0x103d04b74 rive::ArtboardBase::coreType
RiveRuntime 0x103d8f3d4 rive::Shape::onAddedClean
RiveRuntime 0x103d06894 rive::Artboard::initialize
RiveRuntime 0x103d0eec4 rive::Artboard::instance<T>
RiveRuntime 0x103cd8b74 -[RiveFile artboardFromName:error:] (RiveFile.mm:462)
RiveRuntime 0x103cfcbe0 RiveModel.setArtboard (RiveModel.swift:65)
RiveRuntime 0x103cf3cd4 RiveViewModel.configureModel (RiveViewModel.swift:310)
RiveRuntime 0x103cf2a8c RiveViewModel.sharedInit (RiveViewModel.swift:157)
RiveRuntime 0x103cf78a4 RiveViewModel.init (RiveViewModel.swift:98)
RiveRuntime 0x103cf1f60 RiveViewModel.init (<compiler-generated>)
Emy 0x10228e3d0 RiveReactNativeView.configureViewModelFromResource
Emy 0x10228d358 RiveReactNativeView.didSetProps
Emy 0x10228d604 RiveReactNativeView.didSetProps
Emy 0x1017304ec -[RCTLegacyViewManagerInteropCoordinator setProps:forView:]
Emy 0x1014a20a0 -[RCTLegacyViewManagerInteropCoordinatorAdapter setProps:]
Emy 0x1014a1888 __60-[RCTLegacyViewManagerInteropComponentView finalizeUpdates:]_block_invoke
Emy 0x1014a1410 -[RCTLegacyViewManagerInteropComponentView finalizeUpdates:]
Emy 0x1014a93b0 _ZNSt3__110__function6__funcIZ41-[RCTMountingManager performTransaction:]E3$_1NS_9allocatorIS2_EEFvRKN8facebook5react19MountingTransactionERKNS6_16SurfaceTelemetryEEEclES9_SC_
Emy 0x101741908 facebook::react::TelemetryController::pullTransaction
Emy 0x1014a80bc -[RCTMountingManager performTransaction:]
Emy 0x1014a7fd8 -[RCTMountingManager initiateTransaction:]
libdispatch 0x19f65caa8 _dispatch_call_block_and_release
libdispatch 0x19f676580 _dispatch_client_callout
libdispatch 0x19f69359c _dispatch_main_queue_drain.cold.5
libdispatch 0x19f66bd2c _dispatch_main_queue_drain
libdispatch 0x19f66bc68 _dispatch_main_queue_callback_4CF
CoreFoundation 0x19773dd8c __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__
CoreFoundation 0x1976e14f0 __CFRunLoopRun
CoreFoundation 0x1976e2c38 CFRunLoopRunSpecific
GraphicsServices 0x1e48c1450 GSEventRunModal
UIKitCore 0x19a0f5270 -[UIApplication _run]
UIKitCore 0x19a0c0a24 UIApplicationMain
Emy 0x100b4db40 main
0x1be5b7f08 <redacted>
libsystem_platform 0x22665e080 _platform_memmove
RiveRuntime 0x107aa49bc rive::DependencySorter::visit
RiveRuntime 0x107aa4938 rive::DependencySorter::visit
RiveRuntime 0x107aa4938 rive::DependencySorter::visit
RiveRuntime 0x107aa4938 rive::DependencySorter::visit
RiveRuntime 0x107aa4938 rive::DependencySorter::visit
RiveRuntime 0x107aa4938 rive::DependencySorter::visit
RiveRuntime 0x107aa4938 rive::DependencySorter::visit
RiveRuntime 0x107aa4938 rive::DependencySorter::visit
RiveRuntime 0x107aa4938 rive::DependencySorter::visit
RiveRuntime 0x107aa4938 rive::DependencySorter::visit
RiveRuntime 0x107aa4938 rive::DependencySorter::visit
RiveRuntime 0x107a7428c rive::Artboard::sortDependencies
RiveRuntime 0x107a734ec rive::Artboard::initialize
RiveRuntime 0x107aaf158 rive::ImportStack::makeLatest
RiveRuntime 0x107aab828 rive::File::read
RiveRuntime 0x107aaa730 rive::File::import
RiveRuntime 0x107a446c0 rive::File::import (file.hpp:71)
RiveRuntime 0x107a44340 -[RiveFile import:byteLength:loadCdn:customAssetLoader:error:] (RiveFile.mm:364)
RiveRuntime 0x107a43670 -[RiveFile initWithBytes:byteLength:loadCdn:customAssetLoader:error:] (RiveFile.mm:136)
RiveRuntime 0x107a437f8 -[RiveFile initWithData:loadCdn:customAssetLoader:error:] (RiveFile.mm:167)
RiveRuntime 0x107a47908 RiveFile.init (RiveFile+Extensions.swift:16)
RiveRuntime 0x107a685bc RiveModel.init (RiveModel.swift:29)
RiveRuntime 0x107a63850 RiveModel.__allocating_init (RiveModel.swift)
RiveRuntime 0x107a63850 RiveViewModel.init (RiveViewModel.swift:97)
RiveRuntime 0x107a5df60 RiveViewModel.init (<compiler-generated>)
Emy 0x1061e23d0 RiveReactNativeView.configureViewModelFromResource
Emy 0x1061e1358 RiveReactNativeView.didSetProps
Emy 0x1061e1604 RiveReactNativeView.didSetProps
Emy 0x1056844ec -[RCTLegacyViewManagerInteropCoordinator setProps:forView:]
Emy 0x1053f60a0 -[RCTLegacyViewManagerInteropCoordinatorAdapter setProps:]
Emy 0x1053f5888 __60-[RCTLegacyViewManagerInteropComponentView finalizeUpdates:]_block_invoke
Emy 0x1053f5410 -[RCTLegacyViewManagerInteropComponentView finalizeUpdates:]
Emy 0x1053fd3b0 _ZNSt3__110__function6__funcIZ41-[RCTMountingManager performTransaction:]E3$_1NS_9allocatorIS2_EEFvRKN8facebook5react19MountingTransactionERKNS6_16SurfaceTelemetryEEEclES9_SC_
Emy 0x105695908 facebook::react::TelemetryController::pullTransaction
Emy 0x1053fc0bc -[RCTMountingManager performTransaction:]
Emy 0x1053fbfd8 -[RCTMountingManager initiateTransaction:]
libdispatch 0x1e26f77a4 _dispatch_call_block_and_release
libdispatch 0x1e26f877c _dispatch_client_callout
libdispatch 0x1e26d9e0c _dispatch_main_queue_drain
libdispatch 0x1e26d9a84 _dispatch_main_queue_callback_4CF$VARIANT$armv81
CoreFoundation 0x1db9d99a8 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__
CoreFoundation 0x1db9bd644 __CFRunLoopRun
CoreFoundation 0x1db9c1d1c CFRunLoopRunSpecific
GraphicsServices 0x213a91994 GSEventRunModal
UIKitCore 0x1ddc54348 -[UIApplication _run]
UIKitCore 0x1ddc53fc0 UIApplicationMain
Emy 0x104aa1b40 main
0x1f9180344 <redacted>
RiveRuntime 0x1076af9bc rive::ClippingShape::onAddedClean
RiveRuntime 0x1076afa04 rive::ClippingShape::onAddedClean
RiveRuntime 0x10769a894 rive::Artboard::initialize
RiveRuntime 0x1076d7158 rive::ImportStack::makeLatest
RiveRuntime 0x1076d3828 rive::File::read
RiveRuntime 0x1076d2730 rive::File::import
RiveRuntime 0x10766c6c0 rive::File::import (file.hpp:71)
RiveRuntime 0x10766c340 -[RiveFile import:byteLength:loadCdn:customAssetLoader:error:] (RiveFile.mm:364)
RiveRuntime 0x10766b670 -[RiveFile initWithBytes:byteLength:loadCdn:customAssetLoader:error:] (RiveFile.mm:136)
RiveRuntime 0x10766b7f8 -[RiveFile initWithData:loadCdn:customAssetLoader:error:] (RiveFile.mm:167)
RiveRuntime 0x10766f908 RiveFile.init (RiveFile+Extensions.swift:16)
RiveRuntime 0x1076905bc RiveModel.init (RiveModel.swift:29)
RiveRuntime 0x10768b850 RiveModel.__allocating_init (RiveModel.swift)
RiveRuntime 0x10768b850 RiveViewModel.init (RiveViewModel.swift:97)
RiveRuntime 0x107685f60 RiveViewModel.init (<compiler-generated>)
Emy 0x105b3a3d0 RiveReactNativeView.configureViewModelFromResource
Emy 0x105b39358 RiveReactNativeView.didSetProps
Emy 0x105b39604 RiveReactNativeView.didSetProps
Emy 0x104fdc4ec -[RCTLegacyViewManagerInteropCoordinator setProps:forView:]
Emy 0x104d4e0a0 -[RCTLegacyViewManagerInteropCoordinatorAdapter setProps:]
Emy 0x104d4d888 __60-[RCTLegacyViewManagerInteropComponentView finalizeUpdates:]_block_invoke
Emy 0x104d4d410 -[RCTLegacyViewManagerInteropComponentView finalizeUpdates:]
Emy 0x104d553b0 _ZNSt3__110__function6__funcIZ41-[RCTMountingManager performTransaction:]E3$_1NS_9allocatorIS2_EEFvRKN8facebook5react19MountingTransactionERKNS6_16SurfaceTelemetryEEEclES9_SC_
Emy 0x104fed908 facebook::react::TelemetryController::pullTransaction
Emy 0x104d540bc -[RCTMountingManager performTransaction:]
Emy 0x104d53fd8 -[RCTMountingManager initiateTransaction:]
Emy 0x104d6f2a8 -[RCTSurfacePresenter schedulerShouldRenderTransactions:]
Emy 0x104d64c10 SchedulerDelegateProxy::schedulerShouldRenderTransactions
Emy 0x104fdef30 facebook::react::Scheduler::uiManagerDidFinishTransaction
Emy 0x104ff35ac facebook::react::UIManager::shadowTreeDidFinishTransaction
Emy 0x104fe7c58 facebook::react::ShadowTree::notifyDelegatesOfUpdates
Emy 0x104fe8d38 facebook::react::ShadowTreeRegistry::visit
Emy 0x104e28c44 std::__1::__function::__func<T>::operator()
Emy 0x104e40510 std::__1::function<T>::operator()
Emy 0x104e40284 worklets::jsi_utils::createHostFunction<T>::lambda::operator()
Emy 0x1046d6520 std::__1::function<T>::operator()
Emy 0x1046d6520 std::__1::function<T>::operator()
hermes 0x107eb3788 std::__1::function<T>::operator()
hermes 0x107eb3450 facebook::hermes::HermesRuntimeImpl::HFContext::func
hermes 0x107ec30f0 hermes::vm::NativeFunction::_nativeCall
hermes 0x107ecf6f8 hermes::vm::Interpreter::handleCallSlowPath
hermes 0x107ed1104 hermes::vm::Interpreter::interpretFunction<T>
hermes 0x107ed06f0 hermes::vm::Runtime::interpretFunctionImpl
hermes 0x107ec31d8 hermes::vm::JSFunction::_callImpl
hermes 0x107ec1c40 hermes::vm::Callable::executeCall3
hermes 0x107eefb2c hermes::vm::JSMapImpl<T>::forEach
hermes 0x107f403f8 hermes::vm::mapPrototypeForEach
hermes 0x107ec30f0 hermes::vm::NativeFunction::_nativeCall
hermes 0x107ecf6f8 hermes::vm::Interpreter::handleCallSlowPath
hermes 0x107ed1104 hermes::vm::Interpreter::interpretFunction<T>
hermes 0x107ed06f0 hermes::vm::Runtime::interpretFunctionImpl
hermes 0x107ec31d8 hermes::vm::JSFunction::_callImpl
hermes 0x107ec1a5c hermes::vm::Callable::executeCall1
hermes 0x107ee3c88 hermes::vm::JSObject::putNamedWithReceiver_RJS
hermes 0x107ed2f08 hermes::vm::Interpreter::interpretFunction<T>
hermes 0x107ed06f0 hermes::vm::Runtime::interpretFunctionImpl
hermes 0x107ec31d8 hermes::vm::JSFunction::_callImpl
hermes 0x107ec1c40 hermes::vm::Callable::executeCall3
hermes 0x107f1a4a4 hermes::vm::arrayPrototypeForEach
hermes 0x107ec30f0 hermes::vm::NativeFunction::_nativeCall
hermes 0x107ecf6f8 hermes::vm::Interpreter::handleCallSlowPath
hermes 0x107ed1104 hermes::vm::Interpreter::interpretFunction<T>
hermes 0x107ed06f0 hermes::vm::Runtime::interpretFunctionImpl
hermes 0x107ec31d8 hermes::vm::JSFunction::_callImpl
hermes 0x107eab878 facebook::hermes::HermesRuntimeImpl::call
Emy 0x104e44f84 facebook::jsi::WithRuntimeDecorator<T>::call
Emy 0x104e25624 worklets::runOnRuntimeGuarded<T>
Emy 0x104e2553c reanimated::ReanimatedModuleProxy::onRender
Emy 0x104e28854 std::__1::__function::__func<T>::operator()
Emy 0x104e17c38 reanimated::makeRequestRender::lambda::operator()
Emy 0x104e2f180 -[REANodesManager onAnimationFrame:]
QuartzCore 0x19be80468 CA::Display::DisplayLink::dispatch_items
QuartzCore 0x19bf9df24 CA::Display::DisplayLink::dispatch_deferred_display_links
UIKitCore 0x19cff04ac _UIUpdateSequenceRun
UIKitCore 0x19d654c88 schedulerStepScheduledMainSection
UIKitCore 0x19d6541e4 runloopSourceCallback
CoreFoundation 0x19aa06124 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__
CoreFoundation 0x19aa127b0 __CFRunLoopDoSource0
CoreFoundation 0x19a9975e4 __CFRunLoopDoSources0
CoreFoundation 0x19a9ad0d0 __CFRunLoopRun
CoreFoundation 0x19a9b23e8 CFRunLoopRunSpecific
GraphicsServices 0x1d5e4f358 GSEventRunModal
UIKitCore 0x19cd3f6e4 -[UIApplication _run]
UIKitCore 0x19cd3f348 UIApplicationMain
Emy 0x1043f9b40 main
0x1b9e8adec <redacted>
Provide a Repro
I personally haven't been able to reproduce these on iOS yet, but I have encountered occasional ANRs on Android, and we have also had Sentry reports that seem to be the Android equivalent of these App Hanging errors. I already reported those Android errors here, apologies if that was the wrong place:
https://github.com/rive-app/rive-android/issues/381
https://github.com/rive-app/rive-android/issues/380
https://github.com/rive-app/rive-android/issues/379
Source .riv/.rev file
Can be provided on request.
Device & Versions (please complete the following information)
- Device: iPhone XR, iPhone 8, iPhone 12 Mini, + others
- OS: iOS 18.5, iOS 16.7, iOS 16.5, + others
- NPM Version:
10.9.2
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
The stack traces point to RiveReactNativeView.configureViewModelFromResource and the native RiveFile and RiveViewModel paths; begin by reproducing on iOS with rive-react-native@9.3.4, Expo 53, and React Native 0.79.3 with the new architecture enabled. Trace the reported initialization paths and confirm that the app no longer hangs under the reported setup.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ios, react-native
- Domain
- mobile
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100