I’m running into a persistent issue with the official Vive OpenXR sample project in Unreal Engine 5.4 and I haven’t been able to resolve it after extensive debugging.
Setup
UE 5.4
Vive OpenXR Sample (clean download)
OpenXR + Vive OpenXR plugins enabled
SteamVR runtime (OpenXR SteamVR)
Issue reproduces in a fresh project without modifications
Problem
On the first VR Preview run everything works correctly.
Hand interactions (pinch grab, etc.) behave as expected.
After stopping and running VR Preview again:
Grabbing or pinching causes the entire world to appear stuck to HMD movement
Scene becomes laggy for ~2–3 seconds
Then everything snaps back to normal
Repeats every time a new pinch/grab interaction begins
Log spam appears during this:
LogHMD: Warning: GetControllerOrientationAndPositionForTime called with motion source LeftPinchInteraction which is unknown. Cannot get pose.
LogHMD: Warning: GetControllerOrientationAndPositionForTime called with motion source RightAimInteraction which is unknown. Cannot get pose.
...
This affects:
PinchInteraction
AimInteraction
GripInteraction
PokeInteraction
Observations
These motion sources are defined by the Vive sample and required for interaction
Changing Motion Sources to standard (Left, Right, etc.) removes warnings but breaks interaction completely
Happens in clean project
Happens consistently after first run
Looks like pose queries fail during session reinitialization
Vive plugin logs show tracked devices and action sets attaching successfully
What I’ve tried
Verified OpenXR runtime
Editor restarts
Clean project
Late update toggles
Config overrides
Input action review
No resolution.
Question
Has anyone encountered this interaction-motion-source mismatch or session reinit issue with Vive OpenXR in UE5.4?
Is this a known limitation of MotionControllerComponent with custom interaction sources, or a runtime/plugin lifecycle problem?
That error message seems to come from the base OpenXR plugin. It suggests it’s failing to call the function on the correct motion controller class from the plugin, and is falling back to the base OpenXR class.
This sounds like it could be a lifecycle issue, where it’s failing to create or initialize the FViveOpenXRHandInteraction motion controller objects for the hand interaction poses when restarting the OpenXR session.
I’m still pretty new to UE5 VR development, so I’m not sure what the right approach is here. Is there something I can do on the project side to fix or reinitialize this when the session restarts? Even something simple like delaying setup or triggering something manually?
Or should I be structuring this differently and not relying on MotionControllerComponents with the *Interaction motion sources at all?
Also, what I don’t understand is why the clean Vive OpenXR sample project for UE 5.4 shows the same issue.
Thanks again for the help, I appreciate the guidance!
I’d say it’s a bug, either in the engine, the Vive plugin, or in SteamVR. If you want to fix it yourself, the approach would be to debug the issue on the C++ side, and patch it if it’s in the engine or plugin. It’s unlikely a workaround in the on the project side would do much good. The XR systems are pretty much self-contained, and there isn’t much you can change in the project regarding the lifecycle.
UE 5.4 is almost two years old, and it’s possible the issue has already been fixed in newer engine versions. I remember there being fixes for other OpenXR lifecycle issues at least. Seems like HTC hasn’t updated any of their VR plugins in over a year, so not sure if they are working on supporting newer engine versions anymore.
Another thing you can try is switching SteamVR versions. I’ve seen people complaining about having other issues with Unreal after recent SteamVR updates. Switching to the beta or previous version could possibly help.
Since I can’t upgrade to a newer UE version because the Vive OpenXR plugin doesn’t support it, I tried the beta version of SteamVR. It looked promising when I read the patch notes, but unfortunately it didn’t help.
The good news is that switching to a previous SteamVR version did improve things. It didn’t completely solve the issue, I still get the LogHMD error messages, but the lag during interaction is gone.
Thanks again for pointing me in the right direction!
Which steamVR version did you switch to as I am getting this for using named vive tracker sources using the vive plugin. But definitely suspect it to be a lack of software support from HTC, really annoying as it just seems to have completely dropped support for unreal and so heavily hardware invested in vive for this project. @HTCDev ← Tagged this person to see if they can provide us with some support as the HTC dev forum is garbage, sorry if you aren’t affiliated with them just the user handle suggests otherwise..