[Meta Quest Bug] Meta Quest OpenXR Runtime Build Not Loading Properly, Stuck with endless '...' (Unity 2022.3.31f1)

Hi all,

I’ve recently encountered a critical issue when building my Unity project for Meta Quest (Android) and testing the apk build on Quest 2, Quest 3, and Quest Pro. The app shows a black screen on launch and does not function. The OpenXR log file indicates that the runtime is not supporting the “Meta Quest Support” feature.

Here’s the relevant adb log output:

01-17 13:22:23.842 26100 26134 I Unity   : XRGeneral Settings awakening...
01-17 13:22:23.842 26100 26134 I Unity   : UnityEngine.XR.Management.XRGeneralSettings:Awake()
01-17 13:22:23.842 26100 26134 I Unity   :
01-17 13:22:23.947 26100 26134 E Unity   : [XR] Error loading subsystem: Display (1) (header mismatch?)
01-17 13:22:23.951 26100 26134 W Unity   : [XR] XR_META_performance_metrics: Attempted to stop before session ready
01-17 13:22:23.969 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.969][Error  ] xrPollEvent: XR_ERROR_FUNCTION_UNSUPPORTED
01-17 13:22:23.970 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.970][Info   ]
01-17 13:22:23.970 26100 26134 I Unity   :
01-17 13:22:23.970 26100 26134 I Unity   : ==== Start Unity OpenXR Diagnostic Report ====
01-17 13:22:23.970 26100 26134 I Unity   :
01-17 13:22:23.970 26100 26134 I Unity   :
01-17 13:22:23.970 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.970][Info   ] ==== Report     Reason: System Shutdown ====
01-17 13:22:23.970 26100 26134 I Unity   :
01-17 13:22:23.970 26100 26134 I Unity   :
01-17 13:22:23.970 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.970][Info   ] ==== OpenXR Provider Info ====
01-17 13:22:23.970 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.970][Info   ]
01-17 13:22:23.970 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.970][Info   ] Spec Version:     1.0.34
01-17 13:22:23.970 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.970][Info   ] Provider Version: 1.11.0
01-17 13:22:23.970 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.970][Info   ]
01-17 13:22:23.970 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.970][Info   ] ==== OpenXR Runtime Info ====
01-17 13:22:23.970 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.970][Info   ]
01-17 13:22:23.970 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.970][Info   ] Features requested to be enabled: (4)
01-17 13:22:23.971 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.970][Info   ]   Meta Quest     Support: Version=1.0.0, Company="Unity", Extensions="XR_OCULUS_android_initialize_loader"
01-17 13:22:23.971 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.971][Info   ]   Meta Quest: AR     Camera (Passthrough): Version=0.1.0, Company="Unity Technologies", Extensions="XR_FB_passthrough XR_FB_composition_layer_alpha_blend"
01-17 13:22:23.971 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.971][Info   ]   Meta Quest: AR     Session: Version=0.1.0, Company="Unity Technologies", Extensions="XR_FB_scene_capture"
01-17 13:22:23.971 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.971][Info   ]   Oculus Touch     Controller Profile: Version=0.0.1, Company="Unity"
01-17 13:22:23.971 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.971][Info   ]
01-17 13:22:23.971 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.971][Info   ] Requested feature extensions not supported by runtime: (1)
01-17 13:22:23.971 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.971][Info   ]       XR_OCULUS_android_initialize_loader: Feature="Meta Quest Support": Version=1.0.0, Company="Unity"
01-17 13:22:23.971 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.971][Info   ]
01-17 13:22:23.971 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.971][Info   ] ==== Last 20 non-XR_SUCCESS returns ====
01-17 13:22:23.971 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.971][Info   ] [FAILURE]     xrPollEvent: XR_ERROR_FUNCTION_UNSUPPORTED (1x)
01-17 13:22:23.971 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.971][Info   ]
01-17 13:22:23.971 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.971][Info   ] ==== Last 20 Events ====
01-17 13:22:23.971 26100 26134 I Unity   : [XR] [509452564720] [13:22:23.971][Info   ]
01-17 13:22:23.971 26100 26134 I Unity   :
01-17 13:22:23.971 26100 26134 I Unity   : ==== End Unity OpenXR Diagnostic Report ====
01-17 13:22:26.036 26100 26134 I Unity   : Unity version: 2022.3.31f1
01-17 13:22:26.036 26100 26134 I Unity   : Development build: False
01-17 13:22:26.036 26100 26134 I Unity   : OS version: Android OS 12 / API-32 (SQ3A.220605.009.A1/50545280091600330)
01-17 13:22:26.036 26100 26134 I Unity   : Device model: Oculus Quest
01-17 13:22:26.036 26100 26134 I Unity   : Graphics API: Vulkan
01-17 13:22:26.036 26100 26134 I Unity   : Rendering threading mode: Direct
01-17 13:22:26.036 26100 26134 I Unity   : Render pipeline: UniversalRP-MediumQuality (UnityEngine.Rendering.Universal.UniversalRenderPipelineAsset)

It seems the runtime is rejecting the “Meta Quest Support” feature, which is odd as this is the default feature to enable Meta Quest to run off of OpenXR? Here’s my environment and what I’ve tried so far:

Environment:

Unity Version: 2022.3.31f1
Packages:
    AR Foundation: 5.1.5
    OpenXR Plugin: 1.10.0
    Unity OpenXR Meta: 1.0.2
    XR Plugin Management: 4.4.0
Meta Quest Features Enabled:
    Meta Quest Support
    Meta Quest AR Camera Passthrough
    Meta Quest AR Session
Devices Tested On: Quest 3 and Quest Pro, Oculus Touch Controller Profile

What I’ve Tried So Far (all unsuccessful):

  1. Verified OpenXR Settings:
  • Meta Quest Support is checked in XR Plug-in Management with Initialize XR on Startup enabled.
  • Interaction profiles include Meta Quest Touch Pro Controller Profile.
  1. Package Reinstallation:
  • Removed and reinstalled relevant packages (AR Foundation, OpenXR Plugin, XR Plugin Management).
  1. Regenerated Library Files:
  • Deleted the Library folder and allowed Unity to regenerate it.
  1. Testing Across Devices:
  • Tried the APK on multiple Quest devices (Quest 2, Quest 3, and Quest Pro) with the same issue.
  1. Android Build Settings:
  • Ensured ARM64 architecture, IL2CPP scripting backend, and Vulkan graphics APIs are properly configured.
  1. Discussions Deep Dive: Tried to find resolutions on Unity Discussions, Stack Overflow, and Github. Unfortunately haven’t found any solutions yet. Looks like someone recently ran into my issue as well: [XR-MetaQuestXR] Build not working with AR Foundation and Unity OpenXR Meta
  2. Manual XR Subsystem Initialization:
  • Added code to stop subsystems and deinitialize the loader before initializing it (as shown below):

void Awake()
{
if (XRGeneralSettings.Instance.Manager.activeLoader != null)
{
XRGeneralSettings.Instance.Manager.StopSubsystems();
XRGeneralSettings.Instance.Manager.DeinitializeLoader();
}
XRGeneralSettings.Instance.Manager.InitializeLoaderSync();
XRGeneralSettings.Instance.Manager.StartSubsystems();
}

Questions for y’all:

  • Why does the OpenXR runtime reject “Meta Quest Support” as an unsupported feature extension?
  • Are there known compatibility issues with the package versions listed above?
  • Any additional tips or potential insights to resolve this issue?

I’ve attached screenshots of my XR Plug-in Management settings and the OpenXR configuration. If anyone has insights into resolving this or debugging further, you’ll be my hero!

Thanks in advance for any help or guidance!