I’m getting an error when trying to run my game in a new window in its own process. For some reason, regular play-in-editor works fine, and I can also package the project (Windows 10) without any trouble. So the error is a useless stack trace, and a useless assertion message:
Assertion failed: Linker [File:D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp] [Line: 2096]
So naturally I looked up the error in the source, and this is the check that fails:
// Preload.
UObject* Obj = ObjLoaded[i];
if (Obj->HasAnyFlags(RF_NeedLoad))
{
FLinkerLoad* Linker = Obj->GetLinker();
check(Linker);
// ...
For some reason, the object doesn’t have a linker. I have no idea what this means. Several things come to mind:
- why doesn’t the assertion print a message for the name of the object? I’m not building the engine from source, so I cannot just insert a print statement to find out what is going wrong.
- what is a linker? And what does it mean than an object has a linker? (I’m a programmer, I know what a “linker” is, but in this context it might be something specific idunno.
Also, why is it that every time I want to google something Unreal-related, that the documentation is HORRENDOUS; ATROCIOUS; AMATEURISH; etc ?? I’m not making this up, this is literally the documentation, on the official website, for the function in question:
https://docs.unrealengine.com/4.27/en-US/API/Runtime/CoreUObject/UObject/EndLoad/
The documentation doesn’t exist. There is no error message. I don’t know how to even approach this problem except starting a new project, migrating the assets over 1by1 until something breaks…
Dear Epic: For such a big engine, used by so many people, why can’t you bother to document your ■■■■? Please - it’s super annoying!
And also, what can I do to approach this problem? I’m not being told what is going wrong.