Immersive space sometimes opens with a broken world origin (world anchors fail with error 200, recenter times out)

Hi all,

We're seeing an intermittent issue in a native SwiftUI + RealityKit app on Vision Pro (visionOS 27.0.1, still there on 27.2).

When we open a mixed ImmersiveSpace, roughly 1 in 10–30 opens, everything ends up offset from where it should be. Sometimes it's 50 cm, sometimes several meters, sometimes it's rotated. Holding the Digital Crown to recenter fixes it immediately.

We are attaching things to the camera, like we have a window following the user and that is offset in these rare cases which makes the app not usable.

In the device logs, a good open looks like this:

backboardd (recenter) Setting new world origin with anchor ...
backboardd ARWorldTrackingProcessor: Added world anchor ... successfully (x4)
backboardd (recenter) Finished (error: (null)) setting set new world origin ...

A bad open looks like this:

backboardd (recenter) Setting new world origin with anchor ...
arkitd SLAMAnchorUpdate: Failed to add anchor request ... NSPOSIXErrorDomain Code=4
backboardd ARWorldTrackingProcessor: Failed to add world anchor ... com.apple.arkit Code=200 "Adding an object failed." (x4)
backboardd (recenter) timeout exceeded. Forcing fade in.

Like whenever the bad state occurs it is because adding a world anchor seems to fail. I haven't tested with visionOS26 but the same app didnt run into that problem ever. So the system seems to fail adding its own origin anchors, gives up after 2 seconds and shows the space anyway.

Has anyone else run into this? And is there any way to detect it from the app or trigger a recenter in code?

Thanks!

Basically AR Kit positions and RealityKit positions disagree with eachother is happening

@Seppi- This sounds like unexpected behavior, can you please file a bug report using Feedback Assistant, and then paste the ticket number back here and I can make sure it gets to the right people on our end. Also check out Bug Reporting: How and Why? for advice on how to submit a bug report to Apple.

There is no way to recenter the the world from code, this is controlled only by the user by pressing the Digital Crown.

There is no way to detect when a recenter "failed". There is onWorldRecenter(action:) which will execute your callback when the person recenters their world.

Your follow-up says ARKit positions and RealityKit positions disagree. If you position the following window from WorldTrackingProvider.queryDeviceAnchor(atTimestamp:), try attaching it to a RealityKit head anchor instead (AnchorEntity(.head)). That keeps the window in RealityKit's own coordinate space, so it may not be affected by the ARKit mismatch. I haven't been able to reproduce your bug, so please let me know if this changes what you see.

Please let me know if you are able to file a ticket with Feedback Assistant. I think especially a sysdiagnosis that captures the error would be helpful. Additionally, if you can provide a small project that reproduces the issue, that would be useful as well. If you file the ticket, you'll get updates as the status of your ticket changes.

Thank you!