How to determine AR status on non-AR platforms?

Greetings!

I have a project that should run with AR (using ARKit) and without AR. Everything is working OK across all platforms with UE4 4.19.1. However, calling the blueprint function StartARSession() on non-AR platforms causes an ensure() to fire, hanging UE4 while it produces the stack dump. OK, no problem there as we should probably first check if AR is supported before trying to start the session.

But how does one go about this in UE4 4.19.1? Most functions in ARBlueprintLibrary call the ensure() when checking if the ARSystem module is missing (like IsSessionTypeSupported()). It looks like the best function to call for this check is GetARSessionStatus(). But here is its code in 4.19.1:

FARSessionStatus UARBlueprintLibrary::GetARSessionStatus()
{
	auto ARSystem = GetARSystem();
	if (ARSystem.IsValid())
	{
		return ARSystem->GetARSessionStatus();
	}
	else
	{
		return FARSessionStatus(EARSessionStatus::NotStarted);
	}
}

It is returning NotStarted when the ARSystem is not valid. But NotStarted could also be returned if the ARSystem is valid, but you haven’t called StartARSession() yet. (See FAppleARKitSystem::OnGetARSessionStatus() for example).

I suspect what GetARSessionStatus() should instead be returning EARSessionStatus::NotSupported when the ARSystem is not valid. That would allow me to determine if AR is possible or not.

Or is there another function I should be calling to determine this?