Crashes only in packaged build

My project crashes sometimes on startup and level change, only in a packaged build.

The crash logs lead me to believe it’s due to a bad reference:

0]LogMemory: Virtual Memory: 5480.76 MB used,  22698.73 MB free, 134217728.00 MB total
[2018.07.28-09.22.39:051][  0]LogWindows: Error: === Critical error: ===
[2018.07.28-09.22.39:051][  0]LogWindows: Error: 
[2018.07.28-09.22.39:051][  0]LogWindows: Error: Fatal error!
[2018.07.28-09.22.39:051][  0]LogWindows: Error: 
[2018.07.28-09.22.39:051][  0]LogWindows: Error: Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x147f0000
[2018.07.28-09.22.39:051][  0]LogWindows: Error: 
[2018.07.28-09.22.39:051][  0]LogWindows: Error: [Callstack] 0x00007ff6bd6bd030 AAAPirateSurvival.exe!AlgoImpl::IntroSortInternal<TBitArray<FDefaultBitArrayAllocator>,FIdentityFunctor,TDereferenceWrapper<TBitArray<FDefaultBitArrayAllocator>,TGreater<TBitArray<FDefaultBitArrayAllocator> > > >() []
[2018.07.28-09.22.39:051][  0]LogWindows: Error: [Callstack] 0x00007ff6bd754d69 AAAPirateSurvival.exe!FSkeletalMeshLODRenderData::InitResources() []
[2018.07.28-09.22.39:051][  0]LogWindows: Error: [Callstack] 0x00007ff6bd7582bf AAAPirateSurvival.exe!FSkeletalMeshRenderData::InitResources() []
[2018.07.28-09.22.39:051][  0]LogWindows: Error: [Callstack] 0x00007ff6bd674419 AAAPirateSurvival.exe!USkeletalMesh::PostLoad() []
[2018.07.28-09.22.39:051][  0]LogWindows: Error: [Callstack] 0x00007ff6bb28f43f AAAPirateSurvival.exe!UObject::ConditionalPostLoad() []
[2018.07.28-09.22.39:051][  0]LogWindows: Error: [Callstack] 0x00007ff6bb0be729 AAAPirateSurvival.exe!FAsyncPackage::PostLoadObjects() []
[2018.07.28-09.22.39:051][  0]LogWindows: Error: [Callstack] 0x00007ff6bb0e61b4 AAAPirateSurvival.exe!FAsyncPackage::TickAsyncPackage() []
[2018.07.28-09.22.39:051][  0]LogWindows: Error: [Callstack] 0x00007ff6bb0c1ee8 AAAPirateSurvival.exe!FAsyncLoadingThread::ProcessAsyncLoading() []
[2018.07.28-09.22.39:051][  0]LogWindows: Error: [Callstack] 0x00007ff6bb0e68fd AAAPirateSurvival.exe!FAsyncLoadingThread::TickAsyncThread() []
[2018.07.28-09.22.39:051][  0]LogWindows: Error: [Callstack] 0x00007ff6bb0e56b8 AAAPirateSurvival.exe!FAsyncLoadingThread::TickAsyncLoading() []
[2018.07.28-09.22.39:051][  0]LogWindows: Error: [Callstack] 0x00007ff6bb0a5075 AAAPirateSurvival.exe!FlushAsyncLoading() []
[2018.07.28-09.22.39:051][  0]LogWindows: Error: [Callstack] 0x00007ff6bb35dbe5 AAAPirateSurvival.exe!LoadPackageInternal() []
[2018.07.28-09.22.39:051][  0]LogWindows: Error: [Callstack] 0x00007ff6bb35d6c4 AAAPirateSurvival.exe!LoadPackage() []
[2018.07.28-09.22.39:051][  0]LogWindows: Error: [Callstack] 0x00007ff6bd8e8bfe AAAPirateSurvival.exe!UEngine::LoadMap() []
[2018.07.28-09.22.39:051][  0]LogWindows: Error: [Callstack] 0x00007ff6bd886d3d AAAPirateSurvival.exe!UEngine::Browse() []
[2018.07.28-09.22.39:051][  0]LogWindows: Error: [Callstack] 0x00007ff6bd0535da AAAPirateSurvival.exe!UGameInstance::StartGameInstance() []
[2018.07.28-09.22.39:051][  0]LogWindows: Error: [Callstack] 0x00007ff6ba5f2f27 AAAPirateSurvival.exe!FEngineLoop::Init() []
[2018.07.28-09.22.39:051][  0]LogWindows: Error: [Callstack] 0x00007ff6ba605562 AAAPirateSurvival.exe!GuardedMain() []
[2018.07.28-09.22.39:051][  0]LogWindows: Error: [Callstack] 0x00007ff6ba6056ca AAAPirateSurvival.exe!GuardedMainWrapper() []
[2018.07.28-09.22.39:051][  0]LogWindows: Error: [Callstack] 0x00007ff6ba613206 AAAPirateSurvival.exe!WinMain() []
[2018.07.28-09.22.39:051][  0]LogWindows: Error: [Callstack] 0x00007ff6be8206ae AAAPirateSurvival.exe!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:283]
[2018.07.28-09.22.39:051][  0]LogWindows: Error: [Callstack] 0x00007fff807a3034 KERNEL32.DLL!UnknownFunction []
[2018.07.28-09.22.39:051][  0]LogWindows: Error: [Callstack] 0x00007fff808f1431 ntdll.dll!UnknownFunction []
[2018.07.28-09.22.39:051][  0]LogWindows: Error: 
[2018.07.28-09.22.39:068][  0]LogExit: Executing StaticShutdownAfterError

Is this assumption correct?

Here’s where things get weird: Putting IsValid checks before everything didn’t solve it, though I could have missed something. I then tested builds after removing chunks of blueprint code. When I begin removing variables from player controller and their references, it crashes less. When I remove everything in player controller, including all variables, it never crashes. However, if I leave only a single completely unreferenced widget variable in player controller, I get crashes. Why is this? Why is it crashing over an unreferenced (internally or externally) variable? What are my next steps, and what can I do to resolve this?

Other info:

  • Packaging from editor
  • 0 errors, 0 warnings when I play in editor or standalone, cook, or package
  • Created a fresh project and migrated over all project files. Still crashing.

At my wit’s end. Someone from Epic please help. #SamanthaDoYouReadMe