Skip to main content
New Participant
May 23, 2026
Question

MRUK queryCompleteEvent error -2 on Horizon OS v203

Title: MRUK queryCompleteEvent error -2 on Horizon OS v203 — permission

verifiably granted, SDK version gap suspected

 

Hardware/software:

- Quest 3, Horizon OS v203 (PTC, displayed as "v2.3")

- Spatial Persistence Service: Version 84, Build Apr 19 2026

- Meta Quest Link PC app: v201 (MQDH reports persistent version

mismatch)

- Unity 6000.3.14f1

- Meta XR SDKs tried: v201.0.0 (Asset Store latest) and v85.0.0

(resolves to OVRPlugin 1.117 / SDK 1.1.53)

- OpenXR Plugin 1.17.0, Meta Quest Support enabled (Android tab)

- Settings → Apps → Spatial data: ON

- Settings → Developer → Spatial Data over Meta Horizon Link: ON

 

Symptom:

Every MRUK scene query in a standalone APK build returns:

 

E/Unity: MRUK Shared: queryCompleteEvent->result returned error

code: -2

E/OVRPlugin: [XREVENT][XR_ERROR_RUNTIME_FAILURE]

XR_TYPE_EVENT_DATA_SPACE_DISCOVERY_COMPLETE_META

 

Save operations also fail with XR_ERROR_RUNTIME_FAILURE on

XR_TYPE_EVENT_DATA_SPACE_SAVE_COMPLETE_FB.

 

Meanwhile, Guardian's own concurrent spatial query

(com.oculus.guardian) on the same device at the same time succeeds

and returns 27 scene anchors including a room mesh. So the scene data

exists and is loadable by system-level queries, just not by

dev.hololabs.mrwow's MRUK query path.

 

Permission verification (per developers.meta.com Spatial Data

Permission doc):

Implemented Option 1 (explicit Unity Android Permission API) with

MRUK Load Scene On Startup disabled and OVRManager Scene checkbox

unchecked, so no request races. Logcat confirms full grant pipeline:

 

I/GrantPermissionsActivity: onCreate:

requestedPermissionsArray=[com.oculus.permission.USE_SCENE]

mTargetPackage=dev.hololabs.mrwow

V/GrantPermissionsViewModel: Permission grant result

permission=com.oculus.permission.USE_SCENE result=4

V/GrantPermissionsViewModel: Permission grant result

permission=horizonos.permission.USE_SCENE isImplicit=true result=4

I/Unity: [MRUKDebug] PermissionGranted:

com.oculus.permission.USE_SCENE

 

Permission.HasUserAuthorizedPermission("com.oculus.permission.USE_SCENE")

returns true after the grant. The documented failure modes for missing

permission are "0 anchors, no error" or LoadDeviceResult.NoScenePermission.

Neither matches what I'm seeing.

 

Diagnostic observations pointing at SDK/firmware version gap:

- OVRPlugin v201 startup log shows ~32 OpenXR extensions requested by

the SDK but reported "unavailable" by the v203 runtime, including

XR_FB_render_model, XR_FB_spatial_entity_sharing,

XR_META_environment_depth, XR_META_colocation_discovery.

- OVRPlugin v117 (downgrade) fails differently: ~20 "MRUK Shared:

Unable to bind OpenXR function" warnings at startup, then the same

-2 error. v117 expects extensions that have been renamed or removed

in v203.

- The RipcClient log reports the Spatial Persistence Service running

on the headset is Version 84, Build Apr 19 2026. This appears to

significantly predate the v201 SDK package release.

 

This suggests v203 Horizon OS firmware is in a compatibility gap

between currently-released Meta XR SDK packages. v201 SDK expects

v204+ runtime extensions; v85/v117 SDK expects an older extension

set that v203 has moved past.

 

Questions:

1. Is there a Meta XR SDK release matched to Horizon OS v203 that

isn't on the Asset Store yet?

2. Is there a documented way to roll a Quest 3 back from v203 PTC to

v201 stable for development?

3. Should the v201 SDK release on the Asset Store be considered

pre-release / not-yet-compatible with currently-deployed firmware?

 

Happy to provide full logcat, AndroidManifest, Packages/manifest.json,

or any other diagnostic info.

cheers!

1 reply

OKENTO
Up and Coming
June 7, 2026

Same issue reproduced on Horizon OS v204 — and a couple of extra data points

Confirming we're hitting this on Horizon OS v204 as well (not just v203 PTC), on a Quest 3. The error signature is identical to the original report:

E/OVRPlugin: [XREVENT][XR_ERROR_RUNTIME_FAILURE] XR_TYPE_EVENT_DATA_SPACE_DISCOVERY_COMPLETE_META

E/Unity: MRUK Shared: queryCompleteEvent->result returned error code: -2

We also see environment depth failing on the same device:

E/Unity: [XR][OpenXR Meta] xrAcquireEnvironmentDepthImageMETA failed with result XR_ERROR_LIMIT_REACHED

As the OP noted, the system/Guardian-level scene data still exists — the failure is isolated to the app's MRUK/OpenXR space-discovery path.

Environment

- Device: Quest 3, Horizon OS v204 (ro.vros.build.version=204, releases-oculus-14.0-v204)

- Unity 6000.3.7f1

- Meta XR All-in-One SDK: tested both 83.0.4 and [your upgraded SDK version]

Extra data points that may help narrow it down to an OS-side regression:

1. Same APK works on a device running Horizon OS v202. Identical build, identical scan/room setup flow — correct behavior on v202, broken on v204. This strongly points to a

runtime regression introduced around v203/v204 rather than an app or SDK bug.

2. Two different failure modes depending on SDK version, both on v204:

- With the older SDK (83.0.4), MRUK space queries actually succeed and a room is returned, but world locking never activates — MRUK.Instance.IsWorldLockActive stays false

indefinitely, so the scene anchors load at the wrong position/orientation (the underlying GetWorldLockOffset native call never returns a valid offset). We also see

continuous VEGA:HM:MAP_TRACKING: Validation failed on Submap in the tracking logs during this.

- With the newer SDK, it degrades to the full failure described here: queryCompleteEvent returns -2 / XR_ERROR_RUNTIME_FAILURE on SPACE_DISCOVERY_COMPLETE, and

LoadSceneFromDevice returns Failure → no rooms returned at all.

3. Everything works over Quest Link (PC runtime) in the Editor, only the standalone on-device build fails — consistent with the runtime-extension version gap theory.