iOS app loses Internet access after updates: wifiDenied and native URLSession -1009

Hello,

Feedback Assistant report: FB24876147.

I develop a Unity-based iOS app. Some customers in mainland China report losing Internet access after an app update, while most installations continue working.

We have received similar reports since at least iOS 16, across several years and multiple app releases. Earlier iOS versions are uncertain, and we cannot confirm that all historical occurrences share the same cause. Updates without networking-code changes can be followed by failures. A later update sometimes restores connectivity, but not consistently.

Customer-reported recovery attempts:

  • The app's wireless-data permissions appear enabled in Settings.
  • Switching the app's network permission to another setting and back did not help users who reported trying it.
  • Reset Network Settings also did not help users who reported trying it.
  • Some users reported that deleting and reinstalling the app restored connectivity.
  • At least one user reported that deletion and reinstallation did not help.

These are customer reports, not controlled tests on our development devices. We would prefer a recovery that preserves local save data.

Captured evidence from one affected installation:

  • App version 1.89, build 1; Unity 2022.3.62f3.
  • Device identifier: iPhone18,1; iOS 26.2.1.
  • App in foreground.
  • Capture time: 2026-09-07 13:04:31–13:04:32 UTC.
  • An unfiltered Network.framework default-path monitor reported: status=unsatisfied reason=wifiDenied interface=Wi-Fi

UnityWebRequest and a newly created native ephemeral NSURLSession both failed against our public HTTPS origin and Apple's independent test endpoint: https://www.apple.com/library/test/success.html

The native requests failed after approximately 1 ms and 3 ms, with NSURLErrorDomain -1009, underlying kCFErrorDomainCFNetwork -1009, and no HTTP response.

The native session allowed cellular, expensive and constrained network access, used normal TLS verification, and had waitsForConnectivity=false. It bypassed Unity's reachability precheck.

CTCellularData changed from unknown to notRestricted. We understand this does not establish successful cellular connectivity or Wi-Fi permission.

Important limitations:

  • The native probes ran inside the same Unity-built process, not a separate standalone native app.
  • The captured measurements demonstrate a Wi-Fi failure. Cellular failures and enabled Settings permissions are customer reports, not independently verified by these measurements.
  • We cannot reliably reproduce the affected state on our development devices and do not have a focused Xcode project that reproduces it.
  • An affected-device sysdiagnose is not yet available.

Unity Customer QA reviewed this evidence, assessed it as an iOS network-policy issue rather than a Unity bug, and referred us to Apple. We are seeking Apple's investigation, not presenting that assessment as a confirmed root cause.

The Code-Level Support form directed us to these forums because we cannot currently provide a focused reproducer.

Questions:

  1. Which affected-device diagnostics or logging profiles would help identify why the effective network policy reports wifiDenied?
  2. How should we investigate an installation-specific issue when a new minimal app may not reproduce that installation state?
  3. Is there a supported, data-preserving recovery or application-side mitigation when permission changes and network resets do not help, and reinstallation is not consistently effective?

We have diagnostic screenshots and relevant probe source available. Any customer system logs would be collected with consent and shared privately with Apple, not posted publicly.

Thank you.

Feedback Assistant report: FB24876147.

Filing a bug about this a good first step. However, for the bug to be actionable we’ll likely need a sysdiagnose log taken on an affected device shortly after reproducing the problem. Are you in touch with a customer who can get that for you?

If so, they can either use Feedback Assistant to file their own bug, which will include the sysdiagnose log, or send the log to you so that you can attach it.

I have lots of hints and tips about filing bugs in Bug Reporting: How and Why?

As to what’s actually causing this, it’s looks like NECP [1] is denying your app access to Wi-Fi. This is is rare outside of China because only iPhones bought in China have the option to disable access to Wi-Fi. So, if something goes wrong with that feature then it’ll most likely show up in China.

One common cause of problems like this is build UUID issues. NECP relies on the main executable UUID internally, and if the device has multiple apps with the same UUID then it can get very confused. I most commonly see this in ‘white label’ apps, where the developer builds the app once and then ships it multiple times after customising just the resources, not the code. It can also crop up when using third-party tools that embed a standard main executable into every app they build.

For more about this issue, see TN3178 Checking for and resolving build UUID problems.

Share and Enjoy
—
Quinn “The Eskimo!” @ Developer Technical Support @ Apple
let myEmail = "eskimo" + "1" + "@" + "apple.com"

[1] As defined in A Peek Behind the NECP Curtain.

iOS app loses Internet access after updates: wifiDenied and native URLSession -1009
 
 
Q