We are getting this issue on start of a development-config coked game target when loading a specific asset in a test project.
It doesn’t happen 100% of the time on all our cooks here, seems to be maybe 60%, but once it happens once, that specific cooked build will reproduce it 100% of the time.
This suggests the issue is at cook time.
I’ve shared a full heap crash dump with Martin Sevigny @ Epic.
The dump is missing some values that would help understand the situation. Do you have a log that goes with this? The message should contain the Flag\InternalFlags information so we can understand what condition is being the cause of the ensure.
More findings on our end, actually the issue is 100%… it just so happen that on some builds the ensure is caught by other systems that don’t fail our test automation… which is a separate issue.
So, the issue may be fully runtime, unrelated to the specific cooked build.
The callstack that is setting this is on the object in question is:
FAsyncPackage2::CreateLinkerLoadExports(FAsyncLoadingThreadState2 & ThreadState) Line 7424 C++
FAsyncPackage2::Event_CreateLinkerLoadExports(FAsyncLoadingThreadState2 & ThreadState, FAsyncPackage2 * Package, int __formal) Line 7596 C++
FEventLoadNode2::Execute(FAsyncLoadingThreadState2 & ThreadState) Line 5979 C++
FAsyncLoadEventQueue2::PopAndExecute(FAsyncLoadingThreadState2 & ThreadState) Line 6132 C++
FAsyncLoadingThread2::ProcessAsyncLoadingFromGameThread(FAsyncLoadingThreadState2 & ThreadState, bool & bDidSomething) Line 9864 C++
FAsyncLoadingThread2::TickAsyncThreadFromGameThread(FAsyncLoadingThreadState2 & ThreadState, bool & bDidSomething) Line 10587 C++
FAsyncLoadingThread2::TickAsyncLoadingFromGameThread(FAsyncLoadingThreadState2 & ThreadState, bool bUseTimeLimit, bool bUseFullTimeLimit, double TimeLimit, TArrayView<int const ,int> FlushRequestIDs, bool & bDidSomething) Line 10203 C++
FAsyncLoadingThread2::FlushLoading(TArrayView<int const ,int> RequestIDs) Line 11914 C++
FlushAsyncLoading(TArrayView<int const ,int> RequestIds) Line 356 C++
FlushAsyncLoading(int) Line 317 C++
It is never cleared after that until the ensure fires.