cancel
Showing results for 
Search instead for 
Did you mean: 

Unreal game launching Assertion failed: AsyncLoadingThread crash

Motanum
Level 3

Hello,

 

After a while of not building my game for Quest 2 Standalone, I am back to get that version ready. I managed to compile the code and to package without failing. But when the game launches to the Quest 2, the game instantly crashes back to the main hub. This is the error I get on the Output Log, which is not much to know what is going on, or who is the culprit.

 

 

LogPlayLevel:   05-18 09:34:57.699  5979  6009 D UE4     : [2022.05.18-14.34.57:699][  0]LogInit: Texture streaming: Enabled
LogPlayLevel:   05-18 09:34:58.237  5979  6114 D UE4     : [2022.05.18-14.34.58:237][  0]LogTcpMessaging: Started Connection to '127.0.0.1:56709'
LogPlayLevel:   05-18 09:34:58.237  5979  6114 D UE4     : [2022.05.18-14.34.58:237][  0]LogTcpMessaging: Discovered node '3D9595EF4C50F82740AFF3AED2CEE6B5' on connection '127.0.0.1:56709'...
LogPlayLevel:   05-18 09:34:58.439  5979  6009 D UE4     : Assertion failed: AsyncLoadingThread.RecursionNotAllowed.Increment() == 1 [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/CoreUObject/Private/Serialization/AsyncLoading.cpp] [Line: 3992]
LogPlayLevel:   05-18 09:34:58.439  5979  6009 D UE4     :
LogPlayLevel:   05-18 09:34:58.439  5979  6009 D UE4     : [2022.05.18-14.34.58:439][  0]Assertion failed: AsyncLoadingThread.RecursionNotAllowed.Increment() == 1 [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/CoreUObject/Private/Serialization/AsyncLoading.cpp] [Line: 3992]
LogPlayLevel:   05-18 09:34:58.439  5979  6009 D UE4     :
LogPlayLevel: Error:   05-18 09:34:58.439  5979  6009 D UE4     : [2022.05.18-14.34.58:439][  0]LogAndroid: Error: === Critical error: ===
LogPlayLevel: Error:   05-18 09:34:58.439  5979  6009 D UE4     : [2022.05.18-14.34.58:439][  0]LogAndroid: Error:
LogPlayLevel: Error:   05-18 09:34:58.440  5979  6009 D UE4     : [2022.05.18-14.34.58:440][  0]LogAndroid: Error: Assertion failed: AsyncLoadingThread.RecursionNotAllowed.Increment() == 1 [File:D:/Build/++UE4/Sync/Engine/Source/Runtime/CoreUObject/Private/Serialization/AsyncLoading.cpp] [Line: 3992]
LogPlayLevel: Error:   05-18 09:34:58.440  5979  6009 D UE4     : [2022.05.18-14.34.58:440][  0]LogAndroid: Error:
LogPlayLevel: Error:   05-18 09:34:58.440  5979  6009 D UE4     : [2022.05.18-14.34.58:440][  0]LogAndroid: Error: << callstack too long >>
LogPlayLevel: Error:   05-18 09:34:58.440  5979  6009 D UE4     : [2022.05.18-14.34.58:440][  0]LogAndroid: Error:
LogPlayLevel: Error:   05-18 09:34:58.440  5979  6009 D UE4     : [2022.05.18-14.34.58:440][  0]LogAndroid: Error:
LogPlayLevel:   05-18 09:34:58.484  5979  6009 D UE4     : [2022.05.18-14.34.58:484][  0]LogExit: Executing StaticShutdownAfterError
LogPlayLevel:   05-18 09:34:58.487  5979  6009 D UE4     : [2022.05.18-14.34.58:487][  0]LogAndroid: FAndroidMisc::RequestExit(1)
LogPlayLevel: Took 0.6029501s to run adb.exe, ExitCode=0

 

 

Any ideas on how I could start to look into why my game is crashing? I feel like I have no tools to know what is going on. What I've tried so far is to remove as many maps I can to see if reducing drawcalls, triangles, and texture helps. but no success yet.

 

1 ACCEPTED SOLUTION

Accepted Solutions

Motanum
Level 3

I found the issue. It was with a function in StaticLoadObject() inside a struct.

 

I took it out with #if PLATFORMS_WINDOWS, and it worked out.

View solution in original post

4 REPLIES 4

pro_zac
Level 6

If you are building the engine yourself, I suggest installing the AGDE plugin for visual studio so you can debug the issue. Set a conditional breakpoint to catch the error.

 

A quick look at the code for the assertion (line 3992 of AsyncLoading.cpp) shows that the verify is not enabled on shipping builds. You could try a shipping build to see if it runs or gives more info about the error.

I am not using a custom engine build.

 

When I launch the game, I use the  Launch > Quest device option. I am not packaging the game for Android_ASTC and then sending that over via ADB. So I think that the Launch to device is a Development build and not a Shipping build. Which is why I do have logs in the Output Log window.

 

Usually, when I get an out of index array error, I at least have a message before that tells me what class is doing the stuff. I just don't know what the game is trying to do at that moment. Or if I am going overboard in some kind of memory, drawcall budget, or other thing.

pro_zac
Level 6

Without building and debugging the engine we really only have to output log to go by. 

 

Things to try:

  • Package build instead of using launch. Sometimes packaged builds work when launching does not.
  • Change Android settings to "Package game data inside .apk". This has resolved issues for me before.

You can find the current build configuration setting in File > Package Project > Build Configuration. I expect this is set to Development. As I said before, maybe try a shipping build to see if it does anything different.

Motanum
Level 3

I found the issue. It was with a function in StaticLoadObject() inside a struct.

 

I took it out with #if PLATFORMS_WINDOWS, and it worked out.