Async Map preload ends in crash

I’m trying to preload a map before switching to the new map to remove the loading scene from the process.
This works in PIE but crashes in build. Does anybody know what I’m doing wrong?

void UTFGameInstance::LoadMapAsync(FName LevelName)
{
	CachedLevelName = LevelName;

	// Check whether requested map exists, this could be very slow if LevelName is a short package name
	FString LongPackageName;
	bool bOutSuccess = FPackageName::SearchForPackageOnDisk(LevelName.ToString(), &LongPackageName);
	if (!bOutSuccess)
	{
		UE_LOG(LogTemp, Error, TEXT("Map not found"));
		return;
	}

	int32 value = LoadPackageAsync(LongPackageName, FLoadPackageAsyncDelegate::CreateUObject(this, &UTFGameInstance::FinishedStreamingLevel));
	UE_LOG(LogTemp, Error, TEXT("Loading Map %s async"), *LongPackageName);

}


void UTFGameInstance::FinishedStreamingLevel(const FName& PackageName, UPackage* InLevelPackage, EAsyncLoadingResult::Type Result)
{
	if (InLevelPackage)
	{
		UE_LOG(LogTemp, Error, TEXT("Finished Loading"));

		LevelPackage = InLevelPackage;
		LevelPackage->AddToRoot();

		OnFinishedLevelLoad.Broadcast();	

	}
}

Have you solve the problem? I also want to cache the level, but with no luck in packaged game.