Skip to content

App Hanging errors on iOS #343

@leemhenson

Description

@leemhenson

Description

We recently released a version of our app that uses:

[email protected]
expo@53
[email protected] (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:

rive-app/rive-android#381
rive-app/rive-android#380
rive-app/rive-android#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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions