The linked project crashes on open after attempting to implement an interface and a duplicate of that same interface with different function names. This has not been reproduced in a clean project, however the user has provided additional information on this issue:
"The engine asserts in UObject::SetLinker() [1]. This is called because the engine wants to rename [2] an object (an interface function / a graph). This is strange because there should be no need to rename the function at this point in time! The ConformInterfaceByGUID() [3] function will rename interface functions if their GUIDs match but their name does not match. As it turns out there is the same "InterfaceGuid" for different interface functions. E.g. "Attack_BPI::IsAttackable" has the same GUID as "Skin_BPI::IsSkinnable" (1345967241-1227943219-3811549834-934607715).
I then reverted the project to the previous working state and put a conditional breakpoint into the FGuid::operator<<() to break whenever that above mentioned GUID is loaded. Then I duplicated the "Attack_BPI" blueprint-interface via the editor's context-menu and the breakpoint did hit! So it seems the GUID of the interface functions are copied to the duplicated blueprint-interface but they would need to be initialized with a new unique GUID instead.
We tried to reproduce the issue using a blank blueprint-only project but did not succeed, so "simply" duplicating a blueprint-interface does not always make the engine assert when restarting the editor and loading the project."
1. Open the project: [Link Removed]
2. Go into the NPCs folder
3. Duplicate Attack_BPI
4. Go into Attack_BPI2 and change the function names
5. Open NPC_Parent
6. Add the Attack_BPI2 interface
7. Save and Compile the blueprint
8. Restart the project
Result: Project crashes
Expected: Project would open successfully
UE4Editor_CoreUObject!UObject::SetLinker() uobjectlinker.cpp:102 UE4Editor_CoreUObject!FLinkerLoad::Detach() linkerload.cpp:4188 UE4Editor_CoreUObject!FLinkerManager::ResetLoaders() linkermanager.cpp:112 UE4Editor_CoreUObject!UObject::Rename() obj.cpp:181 UE4Editor_BlueprintGraph!UK2Node::RewireOldPinsToNewPins() k2node.cpp:644 UE4Editor_BlueprintGraph!UK2Node::ReconstructNode() k2node.cpp:410 UE4Editor_BlueprintGraph!UEdGraphSchema_K2::ReconstructNode() edgraphschema_k2.cpp:3971 UE4Editor_UnrealEd!FBlueprintEditorUtils::RefreshGraphNodes() blueprinteditorutils.cpp:594 UE4Editor_UnrealEd!ConformInterfaceByGUID() blueprinteditorutils.cpp:5820 UE4Editor_UnrealEd!FBlueprintEditorUtils::ConformImplementedInterfaces() blueprinteditorutils.cpp:6024 UE4Editor_Engine!UBlueprint::PostLoad() blueprint.cpp:575 UE4Editor_CoreUObject!UObject::ConditionalPostLoad() obj.cpp:726 UE4Editor_CoreUObject!EndLoad() uobjectglobals.cpp:1424 UE4Editor_CoreUObject!LoadPackageInternal() uobjectglobals.cpp:1143 UE4Editor_CoreUObject!LoadPackageInternal() uobjectglobals.cpp:1258 UE4Editor_UnrealEd!UEditorEngine::Map_Load() editorserver.cpp:2392 UE4Editor_UnrealEd!UEditorEngine::HandleMapCommand() editorserver.cpp:5946 UE4Editor_UnrealEd!UEditorEngine::Exec() editorserver.cpp:5436 UE4Editor_UnrealEd!UUnrealEdEngine::Exec() unrealedsrv.cpp:744 UE4Editor_UnrealEd!FEditorFileUtils::LoadMap() filehelpers.cpp:2070 UE4Editor_UnrealEd!FEditorFileUtils::LoadDefaultMapAtStartup() filehelpers.cpp:3283 UE4Editor_UnrealEd!FUnrealEdMisc::OnInit() unrealedmisc.cpp:299 UE4Editor_UnrealEd!EditorInit() unrealed.cpp:86 UE4Editor!GuardedMain() launch.cpp:133 UE4Editor!GuardedMainWrapper() launchwindows.cpp:126 UE4Editor!WinMain() launchwindows.cpp:200 UE4Editor!__scrt_common_main_seh() exe_common.inl:264 kernel32!<Unknown> ntdll!<Unknown>
Head over to the existing Questions & Answers thread and let us know what's up.
1 |
Component | UE - Gameplay - Blueprint |
---|---|
Affects Versions | 4.11.2 |
Target Fix | 4.16 |
Fix Commit | 3261615 |
---|
Created | Apr 25, 2016 |
---|---|
Resolved | Jan 18, 2017 |
Updated | Feb 5, 2017 |