ARKit Coaching Overlay gets stuck in "Continue to move iPad" state

Hello. I made a very simple implementation of ARKit Coaching Overlay via the methods provided by AR Foundation + ARKit libraries as shown below:

        if (ARKitSessionSubsystem.coachingOverlaySupported)
        {
            ARSubsystem = (ARKitSessionSubsystem)ARSession.subsystem;
            ARSubsystem.requestedCoachingGoal = ARCoachingGoal.AnyPlane;
            ARSubsystem.sessionDelegate = new ArSessionDelegate();
            ARSubsystem.SetCoachingActive(true, ARCoachingOverlayTransition.Animated);
        }
        else
        {
            print("Coaching overlay is not supported.");
        }

ArSessionDelegate is my custom class which interits DefaultARKitSessionDelegate as shown below:

class ArSessionDelegate : DefaultARKitSessionDelegate
{
    protected override void OnCoachingOverlayViewDidDeactivate(ARKitSessionSubsystem SessionSubsystem) => Debug.Log("Coaching overlay did deactivate");
    protected override void OnSessionDidFailWithError(ARKitSessionSubsystem sessionSubsystem, NSError error) => Debug.LogError($"ARKit session failed with error: {error}");
    protected override void OnCoachingOverlayViewWillActivate(ARKitSessionSubsystem sessionSubsystem) => Debug.Log("Coaching overlay will activate");
    protected override void OnConfigurationChanged(ARKitSessionSubsystem sessionSubsystem) => Debug.Log("Configuration changed");
}

As you can see, when my AR scene is loaded, I simply activate the Coaching system and give it a delegate object so I can receive it’s messages.

When my app starts, I receive the two initial messages “OnCoachingOverlayViewWillActivate” and “OnConfigurationChanged” once and the iOS starts displaying the Coaching overlay on top of my app BUT this Coaching system never completes its operation/animation no matter what the user does.

The Coaching system first tells the user to move the iPad around and after the first movement, it says “Continue to move iPad”, then it gets stuck in this step. The cube animation on the coaching overlay keeps rotating as long as the user moves/rotates the iPad around but the Coaching system never hides itself, never deactivates itself and most importantly, it never sends any other messages to my custom delegate object.

Because of this Coaching system being in stuck state, my app can’t proceed to its next process because I need to get some kind of confirmation from the Coaching system first.

I wonder why such a simple-looking ARKit system would get stuck and not return a result message after the user scanned his environment via the iPad movements.

Did any of you guys experience such a problem and what’s the best way to make this system work as expected?

Thanks in advance.

I really can’t find any similar complaint/problem on Google. It’s very weird that this happens.

We haven’t heard any other reports of this either. Have you tried any other apps that use the coaching overlay? Hard to tell if this is an Apple regression or a Unity issue.

You are welcome to file a bug with us to see if we can reproduce it: Unity QA: Building quality with passion