SwiftUI/WKWebView app migrated from React Native to SwiftUI shows blank/blue screen for some users after App Store update

I’m hoping to get some insight from Apple engineers or developers who have seen similar behavior.

Background

We previously had a React Native / Expo iOS app in production for several years. Recently, we rebuilt the app completely from scratch as a native SwiftUI app using WKWebView (no shared code, no RN runtime).

The new app architecture is:

  • Native SwiftUI container
  • WKWebView loading a remote web app
  • Firebase Analytics & Crashlytics
  • Push notifications (APNs + FCM)
  • No local database, no persistent native state

Migration scenario

Users update the app via the App Store:

  • Old app: React Native / Expo
  • New app: native SwiftUI + WKWebView

For most users, the migration works fine.

However, for a about 10% of users, the following happens:

The issue

After updating from the old React Native app to the new SwiftUI app:

  • The app opens
  • The native landing screen appears (solid black OR blue background, depending on which most recent version if being installed)
  • The app never transitions to the WKWebView
  • No crash
  • Force-quitting does not help
  • Deleting the app completely and reinstalling does fix it 9/10 times, but NOT ALWAYS.

From the user’s perspective:

“The app is stuck on a black OR blue screen forever.”

Important detail

Most of the times, a full uninstall + reinstall FIXES the issue, but funny enough, NOT always.. In some cases, the issue persists:

What we’ve already tried

Over the last weeks, multiple iOS developers have investigated this.

We have implemented and/or tested:

  • Full rebuild in SwiftUI (no RN remnants)
  • Aggressive cleanup on first launch after update:
  • -- UserDefaults cleanup
  • -- WKWebsiteDataStore cleanup
  • -- URLCache / cookies cleanup
  • Timeouts and fallbacks so the UI never blocks indefinitely
  • Explicit logging of:
  • -- app_open
  • -- session_start
  • -- webview_init
  • -- webview_load_start / finish
  • -- blank screen detection
  • Handling:
  • -- WKWebView content process terminated
  • -- network / TLS / DNS errors
  • Added a native SwiftUI landing screen (in the latest version) so users no longer see a black screen, but now they see a BLUE screen when the transition fails

Observations from Analytics & Crashlytics

  • No native crashes
  • Very high user engagement (~99%)
  • Very low blank-screen detection (~1–2%)
  • The issue does not appear to be mass-scale
  • But support still receives complaints daily from affected users

This suggests a device / iOS / network-specific edge case, not a general migration failure.

Hypotheses (not confirmed)

We suspect one of the following, but haven’t been able to prove it:

  • WKWebView failing to initialize under specific conditions after App Store updates
  • TLS / ATS / CDN edge behavior affecting first WKWebView load
  • iOS lifecycle timing issue when transitioning from SwiftUI landing view to WKWebView
  • OS-specific WebKit state that survives reinstall (keychain? system WebKit state?)
  • ISP / DNS / IPv6-related issues on first launch

What we’re looking for

We would really appreciate insight on:

  • Are there known cases where WKWebView fails silently after an App Store update, even after reinstall?
  • Is there any system-level WebKit state that survives app deletion?
  • Are there best practices for transitioning from a SwiftUI landing view to WKWebView to avoid dead-ends?
  • Any known iOS versions / device classes where this behavior is more common?
  • Any debugging techniques beyond Crashlytics / Analytics that could surface what WebKit is failing on?

We’re not looking for generic “clear cache” advice — we’ve already gone far down that path.

We’re trying to understand whether this is a known WebKit edge case or something we are fundamentally missing.

Thanks in advance for any pointers or shared experiences.

SwiftUI/WKWebView app migrated from React Native to SwiftUI shows blank/blue screen for some users after App Store update
 
 
Q