Unreal 5.6, IOS Subsystem->GetStoreV2Interface() failing on majority of devices

Here’s the function code, where we hit

StoreV2_QueryOffers: Subsystem->GetStoreV2Interface() Store was invalid."));:

Proceeding to make a small test project repro…

bool UStoreSubsystem::StoreV2_QueryOffers()
{
	TArray<FString> OfferIds;
	OffersByCheckoutId.GenerateKeyArray(OfferIds);
 
	const IOnlineSubsystem* Subsystem = Online::GetSubsystem(GetWorld());
	if (!Subsystem)
	{
		UE_LOG(LogStore, Log, TEXT("TRACE StoreV2_QueryOffers: Subsystem was invalid."));
	}
	
	if (Subsystem)
	{
		UE_LOG(LogStore, Log, TEXT("TRACE StoreV2_QueryOffers: proceeding."));
		
		const IOnlineStoreV2Ptr Store = Subsystem->GetStoreV2Interface();
		if (!Store.IsValid())
		{
			UE_LOG(LogStore, Log, TEXT("TRACE StoreV2_QueryOffers: Subsystem->GetStoreV2Interface() Store was invalid."));
		}
		
		const IOnlineIdentityPtr IdentityInterface = Subsystem->GetIdentityInterface();
		if (!IdentityInterface.IsValid())
		{
			UE_LOG(LogStore, Log, TEXT("TRACE StoreV2_QueryOffers: Subsystem->GetIdentityInterface() IdentityInterface was invalid."));
		}
		
		if (Store.IsValid() && IdentityInterface.IsValid())
		{
			UE_LOG(LogStore, Log, TEXT("TRACE StoreV2_QueryOffers: Store + IdentityInterface were valid."));
			auto AccountId = IdentityInterface->GetUniquePlayerId(0);
			if (!AccountId.IsValid())
			{
				UE_LOG(LogStore, Log, TEXT("TRACE StoreV2_QueryOffers: AccountId was invalid."));
				AccountId = FUniqueNetIdString::EmptyId();
			}
 
			UE_LOG(LogStore, Log, TEXT("TRACE StoreV2_QueryOffers: Query about to begin."));
			
			Store->QueryOffersById(*AccountId, OfferIds,
			                       FOnQueryOnlineStoreOffersComplete::CreateUObject(
				                       this, &UStoreSubsystem::StoreV2_OnQueryOffersComplete));
			UE_LOG(LogStore, Log, TEXT("QUERY: Query started."));
			return true;
		}
	}
	
	UE_LOG(LogStore, Log, TEXT("QUERY: No store on this platform."));
	bIsQueryOffersComplete = true;
	OnQueryOffersComplete.Broadcast();
	return false;
}