How does one unify forward facing direction on multiple VR devices?

I’m working on a cross platform VR game and have run into an issue where each HMD apparently has a different forward facing direction. I’m testing this with a simple scene that just has a cube placed on the +Z axis. The camera rig is centered with no rotation and no offsets in the parent transforms.

When I run it on Quest 2 the cube is directly ahead as it should be, but when I run it on Quest 1 the cube is behind me (180 degrees). And on Vive it is directly to the left (90 degrees).

With each device I make sure that the HMD is facing forward and recentered when launched. Also, in my app code I am calling XRInputSubsystem.TryRecenter, but it makes no difference with or without it. Recentering in the device also makes no difference.

I should also mention that I’m using Unity 2022.3.5 with the latest XR Interaction Toolkit 2.4.3.

Is there a way the forward direction can be unified for all HMDs?

My workaround for now is the following method in my camera controller script. Since the XR system translates the camera directly, I am simply looking at it’s orientation upon starting each scene and rotating the rig accordingly.

private void Recenter()
{
    if (IsXR) {
        XRUtil.Recenter();
        Vector3 orient = Vector3.zero;
        Vector3 euler = XRCamera.transform.eulerAngles;
        if (euler.y < -135f) {
            orient.y = 180f;
        }
        else
        if (euler.y > 135f) {
            orient.y = 180f;
        }
        else
        if (euler.y < -45f) {
            orient.y = 90f;
        }
        else
        if (euler.y > 45f) {
            orient.y = -90f;
        }
        XRCameraRig.transform.eulerAngles = orient;
    }
}

Open to any suggestions if there is a better way to handle it.