Web Requests Fail on Android Meta Quest 2 Only

I am experiencing web request failures that only occur on the Meta Quest 2 VR headset.
The requests return successfully in the Editor, in Desktop builds and in regular non-VR Android builds.

I have created a Unity 2022 LTS project, based on the VR Template provided in Unity Hub, and configured it for the Quest.
The headset has been configured with developer mode and all requirements have been installed.
After connecting the headset through cable, build and deployments work fine and I can navigate the sample scene.

The issue occurs on any type of HTTP request I make through scripting.
I have tested with UnityWebRequest and .NET’s HttpClient.
UnityWebRequest returns a "Cannot resolve destination host" network error with "ConnectionError" as a message result, whereas HttpClient causes a "WebException: Error: NameResolutionFailure".

What I’ve tried:

  • Using different destination hosts (my own Servers, Google images or public Json REST APIs)
  • Using http or https
  • Enabling a custom AndroidManifest.xml and adding "android.permission.INTERNET" and "android.permission.ACCESS_NETWORK_STATE" to it
  • Ensuring the correct Android Permissions are requested by the app to the user prior to the web requests
  • Ensuring OpenXR is being used and “Meta Quest Support” is enabled
  • Disabling "Force Remove Internet Permission" under Project Settings > XR Plug-in Management > OpenXR > Meta Quest Support
  • Enabling "Require" under Project Settings > Player > Other Settings > Configuration > Internet Access

I have also tried deploying the app to a different Meta Quest on a different network and the issue persists.
I’ve ran out of ideas and could use some help determining what am I doing wrong.

Below I leave some links to related topics:

I’m having the exact problem, any solution :(?

Are you sending http petitions or https? If they are http you have to add android:usesCleartextTraffic=“true” to the manifest :smiley:

@SDSauron No solution yet… I’m using https, but thanks for the tip!

What I do now and it works is changing the manifest to an erroreous one (for example, changing manifest for manifesta) and trying to build. Unity will tell you that the build went wrong, and then I change the Android Manifest again to make it work

While its not a solution, I found a thread that confirms this is a problem and that it comes from an option in OpenXR to “force disable Internet” that apparantly keeps activating itself. It might fix it to make a custom manifest, but for some reason that might not even be enough, at least it does not work very well for me.

But at least it has been reported to Unity.
https://forum.unity.com/threads/unity-removes-android-permission-internet-in-the-build-apk-after-build-is-completed.1466654/