Horizon OS v206: Unity/OpenXR Apps Randomly Stuck on Infinite Three Dots
I'm experiencing a serious issue on Meta Quest after updating to Horizon OS v206.
- Environment
- Horizon OS: v206.134.0
- Unity
- OpenXR
- OVRPlugin
- Custom launcher (Agent launches Unity application)
- Multiple Unity/OpenXR applications
Problem
- After launching a Unity/OpenXR application, the headset sometimes remains on the Meta loading screen (three dots) forever.
- Important observations:
- Audio from the Unity application plays normally.
- The application process is running.
- The application can receive network commands.
- The application can also be terminated remotely.
- Only rendering never appears.
- The three dots remain forever.
Frequency
We have 10 Quest devices.
8 devices never show this issue.
2 devices reproduce it frequently.
The exact same APK is installed on all devices.
Things already tested
- Factory Reset
- Clean reinstall
- Fresh APK installation
- Same Unity build on all devices
- Same launcher
- Same Agent
- Same network
The issue still occurs only on the same two headsets.
Additional observations
- Sometimes the problem happens after launching from our launcher.
- Sometimes it also happens when launching manually from the headset.
- Therefore it does not appear to be caused solely by our launcher.
Log observations
- According to logcat:
- VrShell successfully launches the application.
- UnityPlayerActivity starts.
- OpenXR initializes successfully.
- OVRPlugin initializes successfully.
- Audio starts normally.
- However rendering never begins.
The headset stays on the loading dots forever.
There is no application crash.
Expected behavior
The loading screen should disappear after Unity/OpenXR initialization and the application should begin rendering.
Actual behavior
- Three dots remain forever.
- Audio continues playing.
- Application never renders.
Question
- Has anyone experienced this issue on Horizon OS v206?
- Is this a known issue with VrShell or OpenXR?
- Could this indicate that the application never submits its first frame to the compositor even though initialization succeeds?
Any advice would be greatly appreciated.
Thank you.
