WebXRFeature is available but fails on RequestSession

Notice that it is a feature that works on other mobiles (WebXRFeatureName.IMAGE_TRACKING) but not on this particular one, it seems that availableFeatures.indexOf(BABYLON.WebXRFeatureName.IMAGE_TRACKING) is not -1 so it is supposed to be supported but once you start the XR Session an error is triggered:

NotSupportedError: Failed to execute ‘requestSession’ on ‘XRSystem’: The session contains invalid requiredFeatures and could not be fulfilled.

Any tip on this? Thank you in advance!

Note failing mobile was a Poco X3, working one was a OnePlus 9, both using Chrome.

File a bug on Poco, maybe.

Unfortunately the same issue happens on Desktop Chrome with the XR emulator, it says that it is supported but fails on RequestSession

Sure, this feature is simply not supported in the environment you are running. The functionality is there, but the feature is either not yet enabled or is not available in the session mode you selected. that can happen quite often, sadly. What you can do is define the feature as optional (3rd parameter in the feature manager’s enableFeature function). In this case the session will start even if the feature is not defined.

I need to figure how to deal with that, I want to use image tracker in case it’s available and MindAR (MindAR | mind-ar-js ) or Simple AR (GitHub - akbartus/Simple-AR: Simple AR is a web-based image tracking library (platform) based on WebAssembly. It is also compatible with A-Frame, BabylonJs and ThreeJs frameworks.) otherwise.

Webxr tracker is better but it doesn’t work on iOS neither in some Android devices.

There is reasoning behind WbXR not allowing you to check whether or not a feature CAN be enabled (mainly fingerprinting).
What you can check is whether or not this feature is attached. Any feature has a flag, attached that is only set to true if the initialization was successful. It should be false if an optional feature is not supported. This way you can know whether the feature is supported on a running scene.
If that doesn’t work as expected, let me know! i’ll debug it asap.

Great I’ll try that one! btw @syntheticmagus is not longer developed right? It’s a pity it could be a great fallback for unsupported devices/browsers.

1 Like