Project Runs in Editor but Crashes with Assertion/Access Violation After Packaging

I have a basic, BP-only project that was originally 4.11 and mostly rebuilt on 4.12. It runs flawlessly in the editor and the editor is completely stable for editing and testing. I had created a few headers in source but I have since removed those and rebuilt everything without any errors. However, I have problems when I package the project and attempt to run the exe.

  1. Unless I include SM5 RHI (specifically DX11) in the packaging settings, the binary will throw an error stating that the project wasn’t cooked. This makes no sense because this is a DX10 machine and it was cooked, but that’s an easy workaround.

  2. The program will crash on load. However, the errors it throws are different based on the packaging target:

Development: Assertion failed: Object [File:D:\Build++UE4+Release-4.12+Compile\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp] [Line: 3132]

Production: Access violation - code c0000005 (first/second not available)

Both reports with diagnostics were sent via the crash reporter. I don’t know why I am getting different errors and I do not know why I am getting what appears to be null pointer errors (anything pulled off an object reference pin goes through an IsValid/Branch structure) when packaging for production. The development error is similarly bizarre because D:\Build doesn’t exist, so I am unsure of to what the linker is referencing.

Perhaps I am just misunderstanding the debug output, but I’m completely stumped, and /answerhub haven’t revealed an answer. Any help would be appreciated.

Fnor,

Thank you for your report. UE-38717 is a bug in which causes the GlobalShaderCache file to go missing when Direct X 11 SM5 is disabled for packaging. It sounds like this kind of similar to what you’re seeing, but not quite.

  • Are you able to reproduce this in a new project?
  • Is this happening in 4.13?
  • What about 4.14?

Looking forward to hearing back from you, thanks!

I created a clone of the current project, opened it in 4.14, cooked and packaged it and now it works.

One thing I did notice is that it didn’t work when I tried to build it in the Documents directory (On C:). It did work when I scrapped that version and moved everything to the same as my Unreal install (D:). Still needed SM5 in either case, got the same cooking error.

Another oddity is that I have a UI widget attached to each instance of a spawned actor. I had it aligned properly with anchors in 4.12, moved it to 4.14 and the in-engine preview had it grossly misaligned to the left. So I realigned the anchors so it appeared to be fine in the editor, but running the binary now the UI is way off to the right.

I’m glad that 4.14.0 was able to cook and package your project without additional issues. Sometimes when you are packaging a project and the Intermediate and Saved folders are still in the project folder, it’ll cause errors if they’re not properly updated during the cooking/packaging process.

Regarding your UI, I would suggest posting a new question to AnswerHub specifically about the UI widget to keep the questions and answers separated.

Thank you!