C++ Transition Guide for 5.4

Hi! After the little adjustments needed to migrate my project to 5.4 I finally managed to have everything functioning perfectly in editor and packaging without issues. A problem though arises the moment I launch my packaged build. A map gets loaded and immediately after the game crashes. This is what I get from the crash report:

Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0xffffffffffffffff

Theseus_Win64_Shipping!FPakAsyncReadFileHandle::ReadRequest()
Theseus_Win64_Shipping!TScriptContainerIterator::operator bool()
Theseus_Win64_Shipping!UE::FPackageResourceIoBackend::Resolve()
Theseus_Win64_Shipping!FIoDispatcherImpl::ProcessIncomingRequests()
Theseus_Win64_Shipping!FIoDispatcherImpl::Run()
Theseus_Win64_Shipping!FRunnableThreadWin::Run()

Packaging in DebugGame yields the same result, and I can’t get any more useful info. Even by using VS and “attaching to a process” to the running game I don’t get any reference to the game code. I also tried to disable “Use Pak File” in the packaging options as what crashes seems related to a function that reads the Paks : FPakAsyncReadFileHandle::ReadRequest() – but I get the same exact crash.

Any help would be greatly appreciated, even in just how could I simply proceed to debug this!

Thanks!

1 Like

Took a week, but found the issue. Turns out that there’s been some significant upgrade to Metahumans – the Metahumans I have in my project are now considered “legacy” and need to be re-exported from the Metahuman editor. Loading a map with the updated metahuman doesn’t indeed cause that crash anymore.

1 Like

I have the same exact error in 5.4.4. Haven’t found a solution yet. If it helps, this only appeared for me after I updated a plugin that now uses

#include "Chaos/TriangleMeshImplicitObject.h"

By the way, GetObjectW / GetObject probably indicates a windows.h name collision issue

It seems like you’re looking for a transition guide to C++ version 5.4, but C++ versions aren’t typically numbered in that way. C++ versions are usually denoted by the year of their release (e.g., C++98, C++11, C++14, C++17, C++20, and the upcoming C++23). If you’re referring to a compiler (such as GCC 5.4) or a specific framework or library version, I can help with that as well.

Migration is driving me crazy… While trying to solve another engine bug in 5.3, I just checked the migration to 5.4 again. Just like before, I resolved all issues related to the migration from 5.3 to 5.4, except for the one mentioned above. This time, the migration was successful without any changes from my end.