Starting March 2nd we started getting numerous reports of Meta Quest 2 devices lagging and crashing. After initial testing, it became clear that this problem was happening at the device operating system level and that we'd need support from the Meta team to find a solution. This issue has had our highest attention since it was reported and we're doing everything we can to find short-term and long-term solutions.
Read on to learn more about the issue and how to reproduce it.
Some Quest 2 devices are crashing during standard device usage. It starts with the device frame rate getting choppy, and then a popup appearing saying "com.oculus.guardian keeps stopping". At this point the device's RAM usage is unusually high (we can see this with ManageXR). Closing the popup solves it for a bit, but eventually, the lag comes back and at some point the whole system crashes and boots the user out of whatever app they were in.
It's clear the device is experiencing a CPU/memory overload to the point of failure.
Reproducing the Issue
We were able to track down the bug to being related to the sideloaded MDM device enrollment process - specifically, the bug is caused by removing the Android Accounts from the device (which is a necessary step to getting any MDM app onto a Quest).
To reproduce the bug:
With a freshly factory reset device, launch the Android Settings menu using adb:
adb shell am start -n com.android.settings/.Settings
Remove all accounts from the device
Reboot the device
The device is now primed for failure. You don't need to install an MDM like ManageXR to experience the issues, it's entirely related to deleting the Accounts themselves. At this point, the device's logcat logs will be going wild and any typical usage may result in the Guardian App crash popup, and then eventually the current foreground app will crash. You can find example log output here.
The logs that we think are important are:
MobileConfigServiceImpl exception while trying to subscribe java.lang.IllegalArgumentException: account is null
Which is then followed by a wall of text printing at a rate of hundreds of log lines per second, primarily repeating the following 2 log lines:
VrGuardianUserService: DeviceConfig - onFailure - Error:
We're reproducing this internally on several devices with the following version information: