Fixed: Regression Error: Not all events play in cooked game

Hi there,

a few years ago I had a problem with FMOD initializing audio banks too late, thus randomly ignoring some sound events in the cooked build. Inside UE4 editor, everything works correctly, but upon packaging the game I am experiencing this issue.

Back then I managed to fix it with .uplugin definition like this:

"Modules": [
	{
		"Name": "FMODStudio",
		"Type": "CookedOnly",
		"LoadingPhase": "PreEarlyLoadingScreen"
	},

Last year I was forced to port my game to 4.27.2 and once again I have the same annoying issue. Sadly the fix no longer works as it crashes the engine, and the earliest possible phase is PreLoadingScreen, which is too late and some events no longer play.

Is there anything I can do to ensure that all events work correctly?

Many thanks,
Jan

Also this is the log if I use PreEarlyLoadingScreen:

Assertion failed: Object->IsValidLowLevelFast() [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/CoreUObject/Private/Serialization/AsyncLoading.cpp] [Line: 3743]

TheForest!FDebug::AssertFailed()
TheForest!FDebug::CheckVerifyFailedImpl()
TheForest!FAsyncPackage::Event_StartPostload()
TheForest!<lambda_7cb63577489adea33633ac3fab30b69a>::operator()()
TheForest!FAsyncLoadingThread::ProcessAsyncLoading()
TheForest!FAsyncLoadingThread::TickAsyncThread()
TheForest!FAsyncLoadingThread::TickAsyncLoading()
TheForest!FAsyncLoadingThread::FlushLoading()
TheForest!FlushAsyncLoading()
TheForest!LoadPackageInternal()
TheForest!LoadPackage()
TheForest!ResolveName()
TheForest!StaticLoadObjectInternal()
TheForest!StaticLoadObject()
TheForest!UMaterialInterface::InitDefaultMaterials()
TheForest!UClass::CreateDefaultObject()
TheForest!UMaterialInterface::PostCDOContruct()
TheForest!UClass::CreateDefaultObject()
TheForest!FEDLBootNotificationManager::ConstructWaitingBootObjects()
TheForest!FAsyncLoadingThread::TickAsyncLoading()
TheForest!FAsyncLoadingThread::FlushLoading()
TheForest!FlushAsyncLoading()
TheForest!LoadPackageInternal()
TheForest!LoadPackage()
TheForest!UPackage::FullyLoad()
TheForest!FFMODAssetTable::Load() [D:\Devel\Syr_BI\SYR\Plugins\FMODStudio\Source\FMODStudio\Private\FMODAssetTable.cpp:51]
TheForest!FFMODStudioModule::RefreshSettings() [D:\Devel\Syr_BI\SYR\Plugins\FMODStudio\Source\FMODStudio\Private\FMODStudioModule.cpp:1077]
TheForest!FFMODStudioModule::StartupModule() [D:\Devel\Syr_BI\SYR\Plugins\FMODStudio\Source\FMODStudio\Private\FMODStudioModule.cpp:517]
TheForest!FModuleManager::LoadModuleWithFailureReason()
TheForest!FModuleDescriptor::LoadModulesForPhase()
TheForest!FPluginManager::TryLoadModulesForPlugin()
TheForest!FPluginManager::LoadModulesForEnabledPlugins()
TheForest!FEngineLoop::PreInitPostStartupScreen()
TheForest!GuardedMain()
TheForest!GuardedMainWrapper()
TheForest!LaunchWindowsStartup()
TheForest!WinMain()
TheForest!__scrt_common_main_seh() [d:\a01_work\6\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll

I managed to fix the issue. It was the same symptoms, a different cause, so no need to use PreEarlyLoadingScreen at all.