Skip to main content
Question

RevenueCat Paywall freezes (not always) when trying to present on the iOS Simulator

  • February 18, 2026
  • 1 reply
  • 28 views

Forum|alt.badge.img+3

Hi,

Not sure what information to share to help debug this. It doesn’t happen always, but when trying to load the Paywall component using React Native it freezes randomly (not sure the reason). It makes me wonder if it could be happening in production.

I’m sharing the environment I’m using:

Component Version
react-native-purchases ^9.9.0
react-native-purchases-ui ^9.9.0
PurchasesHybridCommon (iOS) 17.37.0
RevenueCat (iOS native SDK) 5.58.0
RevenueCatUI (iOS native) 5.58.0
React Native 0.81.5
Expo SDK 54
iOS Deployment Target 16.2
Xcode Simulator OS macOS 26.3 (25D125)
Architecture ARM-64 (Apple Silicon)

 

According to Claude (after I dumped the crash report from the iOS simulator) it said this: 
 

Issue: RevenueCatUI.Paywall causes main thread deadlock on iOS Simulator

The native SwiftUI paywall (RevenueCatUI.Paywall) triggers a HEIF image decode deadlock on the iOS Simulator, resulting in a 0x8BADF00D watchdog kill.

Crash signature:

  • Main thread blocked on __psynch_mutexwait inside SwiftUICore _SwiftUIProxyImage CA_prepareRenderValue during a CA::Transaction::commit()
  • 10+ com.apple.SwiftUI.prepare-image dispatch threads all blocked on semaphore_wait_trap waiting for HEVC codec sessions (CMPhotoCodecSessionPoolCreateDecompressionSession)
  • Dispatch Thread Soft Limit Reached: 64 (too many dispatch threads blocked in synchronous operations)
  • Termination: 0x8BADF00D (main thread unresponsive >5s)

Root cause: SwiftUI images in the paywall template are decoded as HEIF/HEVC. The simulator lacks hardware HEVC decoders, so all decode operations go through software codecs with a limited session pool. When the paywall renders, it spawns many concurrent image decodes that exhaust the pool, and the main thread deadlocks waiting for an image needed for the CA render commit.

Reproduction: Intermittent on iOS Simulator (ARM64 Mac). Does not reproduce on physical devices (hardware HEVC decoder).

 

I tried to remove the image from the Paywall, but nothing. I’m using a Storekit file I loaded using Xcode.

For now I’m skipping the paywall while developing, but any help it will be more than welcome and appreciated. 

1 reply

matt-heaney
RevenueCat Staff
Forum|alt.badge.img+3
  • RevenueCat Staff
  • February 20, 2026

Hey ​@juan-ramon-469888,

 

Matt from RevenueCat here! I’m sorry to hear this is happening, and I’d love to help with this.

 

I’ve tried to recreate this on a simulator and can’t seem to make the freeze happen. Could you provide any extra details to help me investigate and find the reason behind this?

 

Could you please confirm the following:

  • Which of your paywalls this is happening on? Feel free to private message the app name and the paywall.

  • Which simulator does this happen on? To confirm, does the issue happen with the simulator running on iOS 16.2? Have you ever seen this happen on a real device?

  • Which Xcode version is this running through?

  • Are there any other logs in the crash report that may help?

  • Is there ever any pattern for when this happens, for example on a fresh install?

 

Thank you for any extra info. We’ll get to the bottom of this!