Unity version
6.4
Meta XR Core SDK version
201.0.0 (also reproduced on v85.0.0)
Which OS are you using?
Windows 11 (10.0.26200)
Where does the issue occur?
Description
Summary
Body tracking over PCVR Link (Quest Pro) regressed between Quest OS v2.1.1034 and v2.3. Same PC, same Unity project, same Meta XR SDK — swapping only the headset firmware changes the behavior.
- v2.1.1034 headset → body tracking works correctly over Link.
- v2.3 headset →
OVRPlugin.GetBodyState4 returns false indefinitely despite StartBodyTracking2 succeeding.
Environment
| Component |
Version |
| Headset |
Meta Quest Pro |
| Connection |
USB Link cable |
| Windows |
Windows 11 (10.0.26200) |
| Meta Horizon Link desktop |
85.0.0.239.552 |
| Unity Editor |
6000.4.3f1 |
| Meta XR Core SDK |
201.0.0 (also reproduced on v85.0.0) |
| Unity OpenXR Plugin |
1.16.1 |
| Active OpenXR Runtime |
Meta Horizon (oculus_openxr_64.json) |
| OVRProjectConfig.bodyTrackingSupport |
Supported |
| OVRRuntimeSettings.BodyTrackingJointSet |
FullBody (also repro with UpperBody) |
| OVRRuntimeSettings.BodyTrackingFidelity |
High (also repro with Low) |
Expected behavior
OVRBody.BodyState returns a valid BodyState with JointLocations populated every frame, matching the behavior on v2.1.1034.
Actual behavior
OVRPlugin.bodyTrackingSupported returns true.
OVRBody.OnEnable calls OVRPlugin.StartBodyTracking2(jointSet) → returns true.
OVRPlugin.RequestBodyTrackingFidelity(fidelity) returns false with "body tracking fidelity is not supported".
- Every subsequent frame,
OVRPlugin.GetBodyState4 returns false, so OVRBody.BodyState has no value.
- Continues indefinitely — no data ever flows. Same result after multiple session restarts, headset remounts, Link reconnects.
Reproduction steps
- Set up a Unity project with Meta XR Core SDK 201 + OpenXR Plugin 1.16.1.
- Enable
OVRProjectConfig.bodyTrackingSupport = Supported.
- Add an
OVRBody component to a scene GameObject.
- Connect a Quest Pro on Quest OS v2.3 via USB Link.
- Enter Play mode.
- Observe:
OVRBody.BodyState has no value every frame.
- Swap to a Quest Pro on Quest OS v2.1.1034 — no other changes. Body tracking works immediately.
Log snippet (broken session)
[OVRPlugin] [RequestBodyTrackingFidelity] body tracking fidelity is not supported
[OVRBody] Failed to set Body Tracking fidelity to: High
... (every frame) ovrBody.BodyState has no value
Impact
- Blocks Link-based development of Movement SDK apps.
- Cannot deliver client demos requiring body tracking over Link.
- Affects research/clinical deployments where Link is used for desktop monitoring while body tracking a participant.
Notes
- Both headsets show "Software is up to date" in System → About — v2.1.1034 was apparently skipped for update on one of the two headsets despite both being on the same account.
- Unable to downgrade v2.3 headset since Quest bootloader rejects firmware rollback.
- Fix is urgent for any developer shipping Movement/body-tracked content via Link.
Request
- Confirm this is a known regression in Quest OS v2.3.
- Provide a timeline for a fix.
- Ideally, a workaround for v2.3 (e.g. override flag, developer-mode toggle).
cc @meta-quest team
Steps to reproduce
Summary
Body tracking over PCVR Link (Quest Pro) regressed between Quest OS v2.1.1034 and v2.3. Same PC, same Unity project, same Meta XR SDK — swapping only the headset firmware changes the behavior.
- v2.1.1034 headset → body tracking works correctly over Link.
- v2.3 headset →
OVRPlugin.GetBodyState4 returns false indefinitely despite StartBodyTracking2 succeeding.
Environment
| Component |
Version |
| Headset |
Meta Quest Pro |
| Connection |
USB Link cable |
| Windows |
Windows 11 (10.0.26200) |
| Meta Horizon Link desktop |
85.0.0.239.552 |
| Unity Editor |
6000.4.3f1 |
| Meta XR Core SDK |
201.0.0 (also reproduced on v85.0.0) |
| Unity OpenXR Plugin |
1.16.1 |
| Active OpenXR Runtime |
Meta Horizon (oculus_openxr_64.json) |
| OVRProjectConfig.bodyTrackingSupport |
Supported |
| OVRRuntimeSettings.BodyTrackingJointSet |
FullBody (also repro with UpperBody) |
| OVRRuntimeSettings.BodyTrackingFidelity |
High (also repro with Low) |
Expected behavior
OVRBody.BodyState returns a valid BodyState with JointLocations populated every frame, matching the behavior on v2.1.1034.
Actual behavior
OVRPlugin.bodyTrackingSupported returns true.
OVRBody.OnEnable calls OVRPlugin.StartBodyTracking2(jointSet) → returns true.
OVRPlugin.RequestBodyTrackingFidelity(fidelity) returns false with "body tracking fidelity is not supported".
- Every subsequent frame,
OVRPlugin.GetBodyState4 returns false, so OVRBody.BodyState has no value.
- Continues indefinitely — no data ever flows. Same result after multiple session restarts, headset remounts, Link reconnects.
Reproduction steps
- Set up a Unity project with Meta XR Core SDK 201 + OpenXR Plugin 1.16.1.
- Enable
OVRProjectConfig.bodyTrackingSupport = Supported.
- Add an
OVRBody component to a scene GameObject.
- Connect a Quest Pro on Quest OS v2.3 via USB Link.
- Enter Play mode.
- Observe:
OVRBody.BodyState has no value every frame.
- Swap to a Quest Pro on Quest OS v2.1.1034 — no other changes. Body tracking works immediately.
Log snippet (broken session)
[OVRPlugin] [RequestBodyTrackingFidelity] body tracking fidelity is not supported
[OVRBody] Failed to set Body Tracking fidelity to: High
... (every frame) ovrBody.BodyState has no value
Impact
- Blocks Link-based development of Movement SDK apps.
- Cannot deliver client demos requiring body tracking over Link.
- Affects research/clinical deployments where Link is used for desktop monitoring while body tracking a participant.
Notes
- Both headsets show "Software is up to date" in System → About — v2.1.1034 was apparently skipped for update on one of the two headsets despite both being on the same account.
- Unable to downgrade v2.3 headset since Quest bootloader rejects firmware rollback.
- Fix is urgent for any developer shipping Movement/body-tracked content via Link.
Request
- Confirm this is a known regression in Quest OS v2.3.
- Provide a timeline for a fix.
- Ideally, a workaround for v2.3 (e.g. override flag, developer-mode toggle).
cc @meta-quest team
Logs
## Unity Console log (broken session, Quest OS v2.3)
[BT-DEBUG] MetaBodyStreamProvider.Awake on 'Meta BodyTracking Provider': useFullBodyJointSet=True. OVRBody creation deferred to first Start frame to avoid stalling scene-load (compositor watchdog).
UnityEngine.Debug:Log (object,UnityEngine.Object)
Tracking.Body.MetaBodyStreamProvider:Awake () (at ./Packages/com.silicolabs.labo/Runtime/Tracking/Body/Providers/MetaBodyStreamProvider.cs:95)
[BT-DEBUG] MetaBodyStreamProvider.Start: OVRBody=attached, OVRPlugin.bodyTrackingSupported=True.
UnityEngine.Debug:Log (object,UnityEngine.Object)
Tracking.Body.MetaBodyStreamProvider:Start () (at ./Packages/com.silicolabs.labo/Runtime/Tracking/Body/Providers/MetaBodyStreamProvider.cs:107)
[OVRPlugin] [RequestBodyTrackingFidelity] body tracking fidelity is not supported
(arvr\projects\integrations\OVRPlugin\Src\Util\CompositorOpenXR.cpp:11141)
UnityEngine.Debug:LogWarning (object)
OVRManager:OVRPluginLogCallback (OVRPlugin/LogLevel,intptr,int) (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRManager.cs:2157)
OVRPlugin:RequestBodyTrackingFidelity (OVRPlugin/BodyTrackingFidelity2) (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/OVRPlugin.cs:10891)
OVRBody:StartBodyTracking () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/Movement/OVRBody.cs:167)
OVRBody:OnEnable () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/Movement/OVRBody.cs:130)
[OVRBody] Failed to set Body Tracking fidelity to: High
UnityEngine.Debug:LogWarning (object)
OVRBody:StartBodyTracking () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/Movement/OVRBody.cs:171)
OVRBody:OnEnable () (at ./Library/PackageCache/com.meta.xr.sdk.core/Scripts/Movement/OVRBody.cs:130)
[BT-DEBUG] MetaProvider.UpdateBodyState tick#1: ovrBody.BodyState has no value (Meta runtime not feeding data).
UnityEngine.Debug:LogWarning (object,UnityEngine.Object)
Tracking.Body.MetaBodyStreamProvider:BuildBodyFrame (Tracking.Body.LaboBodyStreamSample) (at ./Packages/com.silicolabs.labo/Runtime/Tracking/Body/Providers/MetaBodyStreamProvider.cs:139)
Tracking.Body.LaboBodyStreamProvider:UpdateData () (at ./Packages/com.silicolabs.labo/Runtime/Tracking/Body/Providers/LaboBodyStreamProvider.cs:49)
Tracking.Body.LaboBodyStreamManager:Update () (at ./Packages/com.silicolabs.labo/Runtime/Tracking/Body/Unity/LaboBodyStreamManager.cs:175)
[BT-DEBUG] MetaProvider.UpdateBodyState tick#120: ovrBody.BodyState has no value
[BT-DEBUG] MetaProvider.UpdateBodyState tick#240: ovrBody.BodyState has no value
[BT-DEBUG] MetaProvider.UpdateBodyState tick#3240: ovrBody.BodyState has no value
...continues indefinitely — no frame of body data ever returns.
Additional info
Key observations from the log
OVRPlugin.bodyTrackingSupported = True — the runtime reports body tracking as available.
OVRPlugin.StartBodyTracking2(jointSet) succeeds.
OVRPlugin.RequestBodyTrackingFidelity fails with "body tracking fidelity is not supported" on v2.3 — same call succeeds on v2.1.1034.
OVRPlugin.GetBodyState4 returns false every frame from that point on; OVRBody.BodyState has no value.
- Swapping the headset to OS v2.1.1034 on the same PC / project / SDK → body tracking works immediately,
GetBodyState4 returns valid joint locations.
The RequestBodyTrackingFidelity failure correlates exactly with the GetBodyState4 data-flow failure. We suspect the v2.3 runtime's fidelity extension handshake is broken in a way that also prevents the body-tracking data stream from starting.
Unity version
6.4
Meta XR Core SDK version
201.0.0 (also reproduced on v85.0.0)
Which OS are you using?
Windows 11 (10.0.26200)
Where does the issue occur?
Description
Summary
Body tracking over PCVR Link (Quest Pro) regressed between Quest OS v2.1.1034 and v2.3. Same PC, same Unity project, same Meta XR SDK — swapping only the headset firmware changes the behavior.
OVRPlugin.GetBodyState4returns false indefinitely despiteStartBodyTracking2succeeding.Environment
oculus_openxr_64.json)Expected behavior
OVRBody.BodyStatereturns a validBodyStatewithJointLocationspopulated every frame, matching the behavior on v2.1.1034.Actual behavior
OVRPlugin.bodyTrackingSupportedreturnstrue.OVRBody.OnEnablecallsOVRPlugin.StartBodyTracking2(jointSet)→ returnstrue.OVRPlugin.RequestBodyTrackingFidelity(fidelity)returnsfalsewith"body tracking fidelity is not supported".OVRPlugin.GetBodyState4returnsfalse, soOVRBody.BodyStatehas no value.Reproduction steps
OVRProjectConfig.bodyTrackingSupport = Supported.OVRBodycomponent to a scene GameObject.OVRBody.BodyStatehas no value every frame.Log snippet (broken session)
Impact
Notes
Request
cc @meta-quest team
Steps to reproduce
Summary
Body tracking over PCVR Link (Quest Pro) regressed between Quest OS v2.1.1034 and v2.3. Same PC, same Unity project, same Meta XR SDK — swapping only the headset firmware changes the behavior.
OVRPlugin.GetBodyState4returns false indefinitely despiteStartBodyTracking2succeeding.Environment
oculus_openxr_64.json)Expected behavior
OVRBody.BodyStatereturns a validBodyStatewithJointLocationspopulated every frame, matching the behavior on v2.1.1034.Actual behavior
OVRPlugin.bodyTrackingSupportedreturnstrue.OVRBody.OnEnablecallsOVRPlugin.StartBodyTracking2(jointSet)→ returnstrue.OVRPlugin.RequestBodyTrackingFidelity(fidelity)returnsfalsewith"body tracking fidelity is not supported".OVRPlugin.GetBodyState4returnsfalse, soOVRBody.BodyStatehas no value.Reproduction steps
OVRProjectConfig.bodyTrackingSupport = Supported.OVRBodycomponent to a scene GameObject.OVRBody.BodyStatehas no value every frame.Log snippet (broken session)
Impact
Notes
Request
cc @meta-quest team
Logs
Additional info
Key observations from the log
OVRPlugin.bodyTrackingSupported = True— the runtime reports body tracking as available.OVRPlugin.StartBodyTracking2(jointSet)succeeds.OVRPlugin.RequestBodyTrackingFidelityfails with "body tracking fidelity is not supported" on v2.3 — same call succeeds on v2.1.1034.OVRPlugin.GetBodyState4returns false every frame from that point on;OVRBody.BodyStatehas no value.GetBodyState4returns valid joint locations.The
RequestBodyTrackingFidelityfailure correlates exactly with theGetBodyState4data-flow failure. We suspect the v2.3 runtime's fidelity extension handshake is broken in a way that also prevents the body-tracking data stream from starting.