OpenXRAPI::get_action_pose: Parameter "action" is null

Godot Version

4.2.2

Question

I’m getting this error in the debugger the second my app starts:
OpenXRAPI::get_action_pose: Parameter “action” is null

Everything in my application is working as expected, except for eye tracking because the dev device does not have that hardware. Other than that I have no idea where this is coming from.

This project is using Eye Tracking & the current device I’m dev’ing with does not support eye tracking. Is this error just related to the eye tracking pose not being seen on the current dev device?

When I export and run the project native on Quest Pro the eye tracking works fine. But I have no way of knowing whether or not the debugger is spewing out this error when running on native android.

My concern is that these errors are happening while running on hardware & I can’t verify.

Any input would be appreciated.

Hmmm, not sure where that would be coming from. I’d need to reproduce it and check. The most likely culprit is that there is an action missing. The only scenario I can think of is eye tracked foveated rendering where we had to hardcode the action “eye_gaze_pose”, but that should probably check and just output a single warning if it’s not available.

For confirming it doesn’t error spam on Quest, Godot should output this to its own log if you enable verbose output (project setting) and remote debugging (under debug menu). Alternatively I can highly recommend you install Metas developer hub, which gives you easier access to logcat in which you can also check for error logging.

I have a stripped down version of the base project that spams the error log I can get to you for you to examine… It’s just an example template I put together. It’s contains an XROrigin, 2 controllers, an EyeGaze Tracker, a floor plane and an viewport 2d in 3d for debugging output. It spams the error log on application start.

How can I get it to you?

I can DM you a URL in Discord for you to download. Would that work?

Upon further testing it appears that the error can occur when the internal name contains a capital letter.
Also note that you cannot delete an action mapping after it has been renamed. The action needs to have the original name or it’ll just throw an error.

[edit] Reported the second one as a bug here. I’m guessing the first one might not be Godot specific, though I think it might be useful to expand the note in the documentation on special characters in action names, to include capital letters.

[Edit] This post seems to have been approved after my first post. The post above is the one I wrote last.

I had the same error in Godot 4.6
Additionally it would fail to find action in interaction_profile_add_binding at the start of the experience.
This seems to be the only post about it, so I figured I should at least say what I did to work around it, in case someone else (or future me) runs into it again.

I tried a bunch of things that didn’t seem to work, until the issue stopped happening, and now I can’t recreate it anymore. So maybe it’s one of these things:

  • Resetting keybindings to default and saving
  • Importing keybinds from different projects
  • Changing the default action map from a GUID to a filename (because of the reimport)
  • Changing the pose mappings, both in the OpenXR action map, and on the XRNode3Ds representing the controllers
  • Restarting Godot

It’s frustrating that I can’t point to something specific in the git commit yet, but perhaps it helps someone next time.