When I start my OpenXR Godot 4.3 game, it instantly crashes

Godot Version

Godot 4.3

Question

Hello,
I am currently working on a XR Application for my Thesis. I use SteamVR to Test it on my Quest 2. Today I wantet to test again and then the problem started. It showed a Window for a split second, but then it closed immediately. The Log is:

Godot Engine v4.3.stable.official.77dcf97d8 - https://godotengine.org
OpenXR: Running on OpenXR runtime: SteamVR/OpenXR 2.8.8
OpenXR: XrGraphicsRequirementsVulkan2KHR:

  • minApiVersionSupported: 1.0.0
  • maxApiVersionSupported: 1.2.0
    Vulkan 1.3.289 - Forward Mobile - Using Device #0: NVIDIA - NVIDIA GeForce RTX 4070 Ti

— Debugging process stopped —

Yeah, I know, super helpful. Its the usual startup text for an XR application. There is nothing else related to the issue, juist some duplicate extension registrations. When I started the OpenXR Handtracking Demo Project, it worked, showed similar output at the start and it just ran. But my project does not. its no Code issue. i made a scene with just the xrorigin and xrcamera and it still just closes on startup. i rly dont know anymore what to do. I even asked AI, but also not very helpful. I hope someone can help me from experience, because there is literally nothing to even make an educated guess what could be wrong, and im no godot expert yet.

thx for reading and I hope you can help me figure it out.

What I did:

  • switch rendering modes
  • deactivate all custom objects and scripts in the main scene
  • reinstalled graphics driver
  • switched from game-ready to studio driver
  • deactivated automatic runtime request (bcs it was not in the handtracking demo)
  • restarted my pc

errors i get every time I start, but didnt rly seem to do anything before:
E 0:00:01:0280 register_singleton: Singleton already registered: OpenXRFbSceneCaptureExtensionWrapper
<C+±Fehler> Condition “has_singleton(p_name)” is true.
<C+±Quelle> core/core_bind.cpp:1740 @ register_singleton()
E 0:00:01:0280 register_singleton: Singleton already registered: OpenXRFbSpatialEntityExtensionWrapper
<C+±Fehler> Condition “has_singleton(p_name)” is true.
<C+±Quelle> core/core_bind.cpp:1740 @ register_singleton()
E 0:00:01:0280 register_singleton: Singleton already registered: OpenXRFbSpatialEntityQueryExtensionWrapper
<C+±Fehler> Condition “has_singleton(p_name)” is true.
<C+±Quelle> core/core_bind.cpp:1740 @ register_singleton()
E 0:00:01:0280 register_singleton: Singleton already registered: OpenXRFbSpatialEntityContainerExtensionWrapper
<C+±Fehler> Condition “has_singleton(p_name)” is true.
<C+±Quelle> core/core_bind.cpp:1740 @ register_singleton()
E 0:00:01:0280 register_singleton: Singleton already registered: OpenXRFbSceneExtensionWrapper
<C+±Fehler> Condition “has_singleton(p_name)” is true.
<C+±Quelle> core/core_bind.cpp:1740 @ register_singleton()
E 0:00:01:0283 _register_extension_class_internal: Attempt to register extension class ‘OpenXREditorExportPlugin’, which appears to be already registered.
<C+±Fehler> Condition “ClassDB::class_exists(class_name)” is true.
<C+±Quelle> core/extension/gdextension.cpp:463 @ _register_extension_class_internal()
E 0:00:01:0283 _register_extension_class_internal: Attempt to register extension class ‘KhronosEditorExportPlugin’, which appears to be already registered.
<C+±Fehler> Condition “ClassDB::class_exists(class_name)” is true.
<C+±Quelle> core/extension/gdextension.cpp:463 @ _register_extension_class_internal()
E 0:00:01:0283 _register_extension_class_internal: Attempt to register extension class ‘KhronosEditorPlugin’, which appears to be already registered.
<C+±Fehler> Condition “ClassDB::class_exists(class_name)” is true.
<C+±Quelle> core/extension/gdextension.cpp:463 @ _register_extension_class_internal()
E 0:00:01:0283 _register_extension_class_internal: Attempt to register extension class ‘OpenXREditorExportPlugin’, which appears to be already registered.
<C+±Fehler> Condition “ClassDB::class_exists(class_name)” is true.
<C+±Quelle> core/extension/gdextension.cpp:463 @ _register_extension_class_internal()
E 0:00:01:0283 _register_extension_class_internal: Attempt to register extension class ‘LynxEditorPlugin’, which appears to be already registered.
<C+±Fehler> Condition “ClassDB::class_exists(class_name)” is true.
<C+±Quelle> core/extension/gdextension.cpp:463 @ _register_extension_class_internal()
E 0:00:01:0283 _register_extension_class_internal: Attempt to register extension class ‘OpenXREditorExportPlugin’, which appears to be already registered.
<C+±Fehler> Condition “ClassDB::class_exists(class_name)” is true.
<C+±Quelle> core/extension/gdextension.cpp:463 @ _register_extension_class_internal()
E 0:00:01:0283 _register_extension_class_internal: Attempt to register extension class ‘MetaEditorExportPlugin’, which appears to be already registered.
<C+±Fehler> Condition “ClassDB::class_exists(class_name)” is true.
<C+±Quelle> core/extension/gdextension.cpp:463 @ _register_extension_class_internal()
E 0:00:01:0283 _register_extension_class_internal: Attempt to register extension class ‘MetaEditorPlugin’, which appears to be already registered.
<C+±Fehler> Condition “ClassDB::class_exists(class_name)” is true.
<C+±Quelle> core/extension/gdextension.cpp:463 @ _register_extension_class_internal()
E 0:00:01:0283 _register_extension_class_internal: Attempt to register extension class ‘OpenXREditorExportPlugin’, which appears to be already registered.
<C+±Fehler> Condition “ClassDB::class_exists(class_name)” is true.
<C+±Quelle> core/extension/gdextension.cpp:463 @ _register_extension_class_internal()
E 0:00:01:0283 _register_extension_class_internal: Attempt to register extension class ‘PicoEditorPlugin’, which appears to be already registered.
<C+±Fehler> Condition “ClassDB::class_exists(class_name)” is true.
<C+±Quelle> core/extension/gdextension.cpp:463 @ _register_extension_class_internal()

Looks like there’s a copy of the openxr gdextension library. They are colliding. Double check your project structure and compilation flags.

thanks. I actually figured it out yesterday night. Was going back commits till it didnt work anymore and compared the commits. I updated/ or double installed (actually no clue) the vendor plugins. I just deleted 1 file (plugin.gdextension) and it started working. It still works on Meta with SteamVR, will try on the XR Elite with an Android Build when im in the University Lab again. If its not working, I will completely remove the vendors plugin and reinstall it from scratch. Thx for the reply. Have a nice day.