"UObjectLinker.cpp Line 102 crash: Detaching from existing linker" when switching levels

After switching levels a few times, a crash happens in UObjectLinker.cpp line 102 because the linker can’t find an object any more. In this case it’s a UMG widget inside of another UMG widget.

Assertion failed: !HasAnyFlags(RF_NeedLoad|RF_NeedPostLoad) [File:D:\Build\++UE4+Release-4.14+Compile\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectLinker.cpp] [Line: 102]

Detaching from existing linker for D:/Project/Content/Widget1.uasset while object Image /Game/Project/Widget1.Widget1_C:WidgetTree_2122.Image_14 needs loaded

I think this is likely due to cyclical dependency issues or something like that. This is fully reproducible, it crashes every time after loading the project and hitting play.

I don’t want to share the project files in public, so once anyone from Epic is assigned to this I will send the link to the project in a PM in the forums. I have removed all unnecessary stuff from the project, so it’s only 80MB.

Thanks!

could anyone please look at this?

Hi,

We very recently implemented a fix internally for something that sounds very similar to what you are describing (UE-38510). If you still have the sample project you mentioned, I can test that with our fix to see if that is actually the same thing.

Thanks ! I’ve sent you a link to the project in the forums.

I tested the project that you provided in our latest internal version of the Engine, and unfortunately the crash still occurs there so the fix I located earlier doesn’t appear to cover this occurrence of the crash. I am still trying to isolate what is causing the crash.

Hi,

After some additional testing today, I believe I have narrowed down what is causing the crash to occur. The RootCanvas Canvas Panel in the MovePanel Widget looks like it may have originated in a previous version of the Engine. The Slot category in the Details panel is no longer present in Canvas Panels that are located at the root of a widget in 4.14. I am not sure exactly when this was removed, unfortunately. However, I created a basic reproduction of that Widget with a new one and changed everything that referenced the old one to reference the new one. After doing that, and restarting the Editor, the crash stopped occurring and the project would keep flipping back and forth between levels in PIE.

Now for the bad news. I was unable to get the crash to stop occurring by simply replacing the existing Canvas Panel in the Widget. The crash would still occur, just with a slightly different error message. It looks like that entire Widget will need to be recreated in 4.14.

Do you happen to recall what Engine version you were using when you created that particular Widget? If I can create a Widget in that version and then upgrade to 4.14, I may be able to reproduce the crash in my own project. That will be very helpful for finding a way to guard against this particular crash.

Thanks ! :slight_smile:

You are right, all the widgets are created in an earlier engine version. I created them in 4.7.

Hi,

So far I have not been able to get the Slot category in the Details panel to appear for a Canvas Panel located in the Root of the Widget. I think something unusual occurred at some point that I am not thinking of that allowed it to happen. I believe you should be fine after replacing that Widget, though. If you run into any further issues, please let us know.

Hello I have a project that I’ve been working on for 2 years now - I have a massive amount of UMG widgets, this issue runs deep in my project - I’ve spent all morning deleting the widgets that pop up with this issue seeing if its something i can clean out of my project - but I can’t if I delete one widget, it just crashes showing another widget, some I made early in the dev of this project, some more recent

A pattern emerging - It is only the umg widgets that I can multiple instance of at run time, i.e a rows of records like available games in multiplayer, line items of my save games - where I create in a loop using create widget node in blueprint

this only happens on my windows 10 machine while running in the editor, it never happens after I compile the game at runtime in windows or android

I had a bug in my game this morning where I created an infinite loop of map changing which made this issue even more visible (because it would crash out on loading after 3 loops)

I upvoted this thread a while ago while it was a mild annoyance for me - I dont think its a matter of a bad node being in my umg, i think the linker gets confused, this issue I think started popping up around 4.11-4.12 for me

[2017.04.08-11.08.37:327][544]LogWindows:Error: === Critical error: ===
[2017.04.08-11.08.37:327][544]LogWindows:Error: 
[2017.04.08-11.08.37:327][544]LogWindows:Error: Assertion failed: !HasAnyFlags(RF_NeedLoad|RF_NeedPostLoad) [File:C:\4_15_1\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectLinker.cpp] [Line: 105] 
[2017.04.08-11.08.37:327][544]LogWindows:Error: Detaching from existing linker for ../../../../projects/ZOMBIETOWNAHHH/Content/_UI/UMG_WIDGETS/MAIN_MENU/SINGLE_PLAYER/UMG_GAMESLOT_ITEM.uasset while object CanvasPanel /Game/_UI/UMG_WIDGETS/MAIN_MENU/SINGLE_PLAYER/UMG_GAMESLOT_ITEM.UMG_GAMESLOT_ITEM_C:WidgetTree.CanvasPanel_922 needs loaded
[2017.04.08-11.08.37:328][544]LogWindows:Error: 
[2017.04.08-11.08.37:328][544]LogWindows:Error: 
[2017.04.08-11.08.37:328][544]LogWindows:Error: KERNELBASE.dll!0x00000000C2817788
[2017.04.08-11.08.37:328][544]LogWindows:Error: UE4Editor-Core.dll!FOutputDeviceWindowsError::Serialize() [c:\4_15_1\engine\source\runtime\core\private\windows\windowsplatformoutputdevices.cpp:120]
[2017.04.08-11.08.37:328][544]LogWindows:Error: UE4Editor-Core.dll!FOutputDevice::Logf__VA() [c:\4_15_1\engine\source\runtime\core\private\misc\outputdevice.cpp:70]
[2017.04.08-11.08.37:328][544]LogWindows:Error: UE4Editor-Core.dll!FDebug::AssertFailed() [c:\4_15_1\engine\source\runtime\core\private\misc\assertionmacros.cpp:349]
[2017.04.08-11.08.37:328][544]LogWindows:Error: UE4Editor-CoreUObject.dll!UObject::SetLinker() [c:\4_15_1\engine\source\runtime\coreuobject\private\uobject\uobjectlinker.cpp:105]
[2017.04.08-11.08.37:328][544]LogWindows:Error: UE4Editor-CoreUObject.dll!FLinkerLoad::Detach() [c:\4_15_1\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:4471]
[2017.04.08-11.08.37:328][544]LogWindows:Error: UE4Editor-CoreUObject.dll!FLinkerManager::ResetLoaders() [c:\4_15_1\engine\source\runtime\coreuobject\private\uobject\linkermanager.cpp:141]
[2017.04.08-11.08.37:328][544]LogWindows:Error: UE4Editor-CoreUObject.dll!UObject::Rename() [c:\4_15_1\engine\source\runtime\coreuobject\private\uobject\obj.cpp:216]
[2017.04.08-11.08.37:328][544]LogWindows:Error: UE4Editor-Engine.dll!UWorld::RenameToPIEWorld() [c:\4_15_1\engine\source\runtime\engine\private\world.cpp:2535]
[2017.04.08-11.08.37:329][544]LogWindows:Error: UE4Editor-Engine.dll!UEngine::LoadMap() [c:\4_15_1\engine\source\runtime\engine\private\unrealengine.cpp:10075]
[2017.04.08-11.08.37:329][544]LogWindows:Error: UE4Editor-Engine.dll!UEngine::Browse() [c:\4_15_1\engine\source\runtime\engine\private\unrealengine.cpp:9491]
[2017.04.08-11.08.37:329][544]LogWindows:Error: UE4Editor-Engine.dll!UEngine::TickWorldTravel() [c:\4_15_1\engine\source\runtime\engine\private\unrealengine.cpp:9680]
[2017.04.08-11.08.37:329][544]LogWindows:Error: UE4Editor-UnrealEd.dll!UEditorEngine::Tick() [c:\4_15_1\engine\source\editor\unrealed\private\editorengine.cpp:1569]
[2017.04.08-11.08.37:329][544]LogWindows:Error: UE4Editor-UnrealEd.dll!UUnrealEdEngine::Tick() [c:\4_15_1\engine\source\editor\unrealed\private\unrealedengine.cpp:391]
[2017.04.08-11.08.37:329][544]LogWindows:Error: UE4Editor.exe!FEngineLoop::Tick() [c:\4_15_1\engine\source\runtime\launch\private\launchengineloop.cpp:3025]
[2017.04.08-11.08.37:329][544]LogWindows:Error: UE4Editor.exe!GuardedMain() [c:\4_15_1\engine\source\runtime\launch\private\launch.cpp:166]
[2017.04.08-11.08.37:329][544]LogWindows:Error: UE4Editor.exe!GuardedMainWrapper() [c:\4_15_1\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
[2017.04.08-11.08.37:329][544]LogWindows:Error: UE4Editor.exe!WinMain() [c:\4_15_1\engine\source\runtime\launch\private\windows\launchwindows.cpp:210]
[2017.04.08-11.08.37:329][544]LogWindows:Error: UE4Editor.exe!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:253]
[2017.04.08-11.08.37:330][544]LogWindows:Error: KERNEL32.DLL!0x00000000C5908364
[2017.04.08-11.08.37:330][544]LogWindows:Error: ntdll.dll!0x00000000C5FA70D1
[2017.04.08-11.08.37:330][544]LogWindows:Error: ntdll.dll!0x00000000C5FA70D1
[2017.04.08-11.08.37:330][544]LogWindows:Error: 
[2017.04.08-11.08.37:349][544]LogExit: Executing StaticShutdownAfterError
[2017.04.08-11.08.37:368][544]LogWindows: FPlatformMisc::RequestExit(1)
[2017.04.08-11.08.37:368][544]Log file closed, 04/08/17 07:08:37

Hi BPANDREW,

I just wanted to check and see if you are still seeing this issue occurring. We were never able to get it to occur in a project that we created here.

I just had same issue with several widgets while using UE4.18.3. Problem was with widget blueprint nativization and “fast widget creation”. I fixed this issue by ticking “Force Slow Construction Path” at widget default settings.

Here is one crash log that:

[2018.02.26-20.32.11:456][246]LogWindows: Error: Assertion failed: !HasAnyFlags(RF_NeedLoad|RF_NeedPostLoad) [File:D:\Build\++UE4+Release-4.18+Compile\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectLinker.cpp] [Line: 105] 
[2018.02.26-20.32.11:456][246]LogWindows: Error: Detaching from existing linker for ../../../../../../Studio/UE4/MachineCombat/Content/Widgets/Slider_Widget.uasset while object CanvasPanel /Game/Widgets/Slider_Widget.WidgetArchetype:WidgetTree_2.CanvasPanel_0 needs loaded

Here is another crash log:

[2018.02.27-17.56.14:588][261]LogWindows: Error: Assertion failed: !HasAnyFlags(RF_NeedLoad|RF_NeedPostLoad) [File:D:\Build\++UE4+Release-4.18+Compile\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectLinker.cpp] [Line: 105] 
[2018.02.27-17.56.14:588][261]LogWindows: Error: Detaching from existing linker for ../../../../../../Studio/UE4/MachineCombat/Content/Widgets/OptionsSetting_BaseButton_Widget.uasset while object Button /Game/Widgets/OptionsSetting_BaseButton_Widget.WidgetArchetype:WidgetTree_2.Button_Base needs loaded

These issues occurred on level change while in editor playing game in active level viewport.
Note:
To get those error messages I had to start editor with debugger from Visual Studio 2017. When exception occurred i clicked continue several times and error was logged in output window of VS2017. Normally launching editor from “Epic Games Launcher” didn’t show those error messages in crash logs!