Why is my centered VR forward direction different between VR previews?

I have a custom VR camera setup, and I’m seeing a weird thing: every time I re-run my game in VR Preview Mode, when I face my computer monitor and do a Reset Orientation and Position, the resulting direction in-game is always different.

It actually looks like the offset each time depends on where I rotated the camera during my last VR Preview. I have a custom pawn class, a subclass of Pawn, and I’m calling Pawn.AddControllerYawInput on tick to pass in values from a gamepad. This rotates the VR playspace along with the pawn. The first time I run VR Preview, the forward direction is exactly in line with the PlayerStart actor, so that’s good. If I then rotate 45 degrees to the right, hit ESC to end the VR Preview, then start another VR Preview, I start facing 45 degrees to the left of the PlayerStart direction.

Maybe something is being cached between VR Previews? This feels like a bug, but maybe I’m doing something wrong?

I found a way to keep this from happening. I hadn’t actually defined a Camera anywhere in my Pawn; when I added one in, this problem went away and my forward direction always lines up in the direction I expect. I guess the editor had been creating a camera for me and maybe wasn’t resetting its values between VR Preview runs? Still might be a bug, but at least it’s not causing me trouble anymore.

I ran into this problem today. Here’s the solution that worked for me, in case anyone stumbles across it.

I had ‘Reset Orientation and Position’ node set to Orientation, instead of Position. This node might be in the MotionControllerPawn blueprint by default. You can find it in the VirtualRealityBP/Blueprints folder.

Here’s how to set the playspace position when putting on the headset and with a button click: