Openxr was requested but failed to start on Quest 3 Android App

Godot Version

4.2.2

Question

I have compiled my XR game successfully for Android & loaded it to the device without issue.

However, on starting the game I get the following error:
openxr was requested but failed to start.

How do I get Godot 4.2.2 XR applications to start correctly and initialize on the Quest 3? I can see the game running in a window, but no XR capabilities exist.

The game runs flawless through Godot & Exported native for Windows. Please help!

Edit: The message also says:
SteamVR is your default OpenXR Runtime.

How do I change this so that it uses the correct runtime needed for the Quest?

So Apparently in 4.2.2 you have to download a plugin from the asset library to get the OpenXR Vendor plugin, then select Oculus Runtime.

I can not get the plugin for 4.2.2 to work, it always causes errors saying it’s trying to load classes that already exist & the plugin never shows up in the plugin list to enable.

Hopefully 4.3 will have this issue resolved

You can ignore the errors about the missing classes, they will disappear the next time you start Godot.

You also no longer need to enable the plugin, it now automatically works, you should be able to find specific export functions for the quest. You can get an overview of the process in the official documentation: Deploying to Android — Godot Engine (stable) documentation in English

You can also find more information about the process here: https://www.youtube.com/watch?v=shbHGhkh4NM
Do note this video was recorded when the plugin still needed to be enabled.

First off, Thank you for your help Bastiaan, I greatly appreciate it.

I have followed the instructions in the you tube video and selected OpenXR as the runtime and Meta as the plugin. I’m using a Gradle Build and am using a signed key, not the debug key. Everything compiles out of Godot without issue. However, I’m still getting the SteamVR as my default OpenXR error.

I have created a minimal, runnable VR project for the Quest that you can download and use for testing and learning:

https://soapspangledgames.com/godot/BasicVR.zip

I’ll take a look thanks!

The issue is the exporting to native Quest. As you can see from the screenshot I posted, I have everything configured correctly to deploy to native android. However it always tries to start in SteamVR mode on the headset, no matter what export configurations I choose.

And I get the same errors whether I export straight from Godot to the headset with debug, or copy the files through Sidequest after a successful compile with a signed key.

It may be something small, which is why I created the basic project. I use it to verify I did everything right when I start a new project, because I also ran into errors with my game running in a 2D window when exporting to the Quest.

Which reminds me, the only change you will have to make to the project is to use your own signing key. Other than that, it is ready to export.

Thanks Again! I have opened and exported your project successfully to my Quest 3 & it runs fine.

When I compare my settings to yours & they seem to be identical. So I have no idea what’s wrong with my project. Very frustrating when it all works fine for Windows on export. This stupid Meta loader issue is really frustrating me!

I know that all my Android Studio Configs & Settings are okay because your project builds fine. So it must be something misconfigured within my project… but idk what it would be.

I’ll keep tinkering away till I figure it out… Can you think of anything that stands out as an issue that stumped you?

I can see the Meta plugin option, enabled it and have set runtime to OpenXR… it just doesn’t listen to what I’ve configured it to be.

Edit: I’m using Godot 4.2.2. I see yours was 4.2. I even tried opening my 4.2.2 project in 4.2 & exporting… but I get the same result

@mux213
I’m still getting the Errors about the plugins already being installed even after closing Godot and reopening it. Is this normal?
Maybe this is part of the issue I’m having?

I remember getting strange OpenXR error messages at some point, but I was not forward thinking enough to document what they were or what I did to fix them. I THINK I disabled the OpenXR plugin, deleted the entire thing, and redownloaded and reinstalled all the OpenXR stuff (the plugin and the providers).

In another case, I had forgotten to enable the OpenXR plugin. I think that is what caused the game to display in a 2D window.

@soapspangledgames I have noticed that when I open your sample project I don’t get the error messages about classes already being registered like I do when I open my project.

I believe this is the problem & something is misconfigured somewhere.

I’ll delete all the XR plugins & disable XR and shaders & start over like you had tried.

Thanks for your input I really appreciate it.

Huzzah!

I finally got it to work. The reason I was getting the duplicate errors, was because I had manually installed the plugin from the github repo & it put the plugin in assets/addons/openxrvendor & I never deleted them after installing via the asset library.

Everything works perfectly! Thanks again @soapspangledgames & @mux213

@jbizlv glad you figured it out. Indeed, if you download the zip it’s important to install it in the right place. By the sounds of it you had multiple copies, one in addons/godotopenxrvendors, which is the correct location, and one in assets/addons/godotopenxrvendors, which is incorrect.

With two copies it is logical things started complaining as you would end up loading the plugin multiple times.

The assets root folder in the zip is required for the asset library to properly extract the files, it’s an artifact of how github zips up a repository by default.