Description

This is a regression that was introduced alongside a memory optimization for Animation Blueprint assets.

Suggested workarounds:

  • Disable "Async Loading Thread Enabled" OR
  • Disable Blueprint nativization OR
  • Exclude the offending Animation Blueprint asset(s) from Blueprint nativization.
Steps to Reproduce
  1. Launch QAGame editor.
  2. In Project Settings->Packaging/Advanced, set "List of maps to include in a packaged build" to /Game/Maps/Framework/Animation/QA-Animation
  3. In Project Settings->Packaging/Blueprints, set "Blueprint Nativization Method" to "Inclusive"
  4. In Project Settings->Engine/Streaming, set "Async Loading Thread Enabled" to true
  5. Also ensure that Project Settings->Engine/Streaming, "Event Driven Loader Enabled" is set to true
  6. Choose File->Package Project->Windows->Win64, choose a location and wait for packaging to finish
  7. Launch the cooked build and type 'open QA-Animation' at the console
  8. An assert will fire on map load:
    Error: Assertion failed: IsInGameThread() [Link Removed] [Line: 567]
Callstack

> QAGame-Win64-Debug.exe!FExposedValueHandler::Initialize(UObject * AnimInstanceObject, int NodeOffset) Line 567 C++
QAGame-Win64-Debug.exe!FExposedValueHandler::Initialize(TArray<FExposedValueHandler,FDefaultAllocator> & Handlers, UObject * ClassDefaultObject) Line 546 C++
QAGame-Win64-Debug.exe!UAnimBP_StateMachines_C_pf1804850088::UAnimBP_StateMachines_C_pf1804850088(const FObjectInitializer & ObjectInitializer) Line 426 C++
QAGame-Win64-Debug.exe!UAnimBP_StateMachines_C_pf1804850088::_DefaultConstructor(const FObjectInitializer & X) Line 17 C++
QAGame-Win64-Debug.exe!InternalConstructor<UAnimBP_StateMachines_C__pf1804850088>(const FObjectInitializer & X) Line 2889 C++
QAGame-Win64-Debug.exe!UClass::CreateDefaultObject() Line 3107 C++
QAGame-Win64-Debug.exe!UDynamicClass::CreateDefaultObject() Line 5287 C++
QAGame-Win64-Debug.exe!FAsyncPackage::EventDrivenCreateExport(int LocalExportIndex) Line 3274 C++
QAGame-Win64-Debug.exe!FAsyncPackage::ProcessImportsAndExports_Event() Line 3906 C++
QAGame-Win64-Debug.exe!FAsyncPackage::Event_ProcessImportsAndExports() Line 2953 C++
QAGame-Win64-Debug.exe!FAsyncLoadingThread::QueueEvent_ProcessImportsAndExports::__l2::<lambda_de7c43a502164ba6f92404e825a9e9e6>::operator()(FAsyncLoadEventArgs & Args) Line 2738 C++
QAGame-Win64-Debug.exe!UE4Function_Private::TFunctionRefCaller<<lambda_de7c43a502164ba6f92404e825a9e9e6>,void __cdecl(FAsyncLoadEventArgs &)>::Call(void * Obj, FAsyncLoadEventArgs & <Params_0>) Line 487 C++
QAGame-Win64-Debug.exe!UE4Function_Private::TFunctionRefBase<UE4Function_Private::TFunctionStorage<0>,void __cdecl(FAsyncLoadEventArgs &)>::operator()(FAsyncLoadEventArgs & <Params_0>) Line 615 C++
QAGame-Win64-Debug.exe!FAsyncLoadEventQueue::PopAndExecute(FAsyncLoadEventArgs & Args) Line 103 C++
QAGame-Win64-Debug.exe!FAsyncLoadingThread::ProcessAsyncLoading(int & OutPackagesProcessed, bool bUseTimeLimit, bool bUseFullTimeLimit, float TimeLimit, FFlushTree * FlushTree) Line 4488 C++
QAGame-Win64-Debug.exe!FAsyncLoadingThread::TickAsyncThread(bool bUseTimeLimit, bool bUseFullTimeLimit, float TimeLimit, bool & bDidSomething, FFlushTree * FlushTree) Line 5268 C++
QAGame-Win64-Debug.exe!FAsyncLoadingThread::Run() Line 5196 C++
QAGame-Win64-Debug.exe!FRunnableThreadWin::Run() Line 94 C++
QAGame-Win64-Debug.exe!FRunnableThreadWin::GuardedRun() Line 45 C++
QAGame-Win64-Debug.exe!FRunnableThreadWin::_ThreadProc(void * pThis) Line 81 C++

Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-74370 in the post.

10
Login to Vote

Fixed
ComponentGameplay - Blueprint
Affects Versions4.22
Target Fix4.23
Fix Commit7090419
Main Commit7090431
Release Commit7090419
CreatedMay 9, 2019
ResolvedJun 19, 2019
UpdatedJul 8, 2019