Description

When an actor has an instanced blueprint property, the order in which the map's imports are being verified when loading can cause the editor to crash. For example, trying to load an instanced blueprint for which the package hasn't been loaded yet.

Workaround:
Opening the instance blueprint before changing levels prevents the crash.

Steps to Reproduce
  1. Open UE4 Editor (Third Person Template)
  2. Add 2 C++ classes based on Object & ActorComponent (MyObject & MyActorComp)
  3. In MyObject.h add Blueprintable, EditInlineNew, DefaultToInstanced, Abstract to UCLASS specifier
  4. In MyActorComp.h add the following
    • #include "MyObject.h"
    • Blueprintable to UCLASS specifier
    • UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = test)
      		UMyObject* TestObj;
  5. Compile
  6. In the editor, create two blueprints based on MyObject (AMyObjectBP & ZMyObjectBP)
  7. Open ThirdPersonCharacter blueprint and add instance of MyActorComp
  8. Set TestObj to AMyObjectBP
  9. Create new level and add instance of ThirdPersonCharacter blueprint
  10. Save new level (SecondLevel) and return to first level
  11. Open ThirdPersonCharacter blueprint and change TestObj from AMyObjectBP to ZMyObjectBP
  12. Close / reopen the editor
  13. Open SecondLevel

Result:
Editor crashes attempting to open the second level

Expected:
Editor switches to the new level for editing

Callstack
LoginId:7156c35640f86204e61b8383f45dee17
EpicAccountId:e8c7fa630b6440f69a25a2c64d6c482c

Fatal error: [File:D:\Build\++UE4+Release-4.15+Compile\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\LinkerLoad.cpp] [Line: 2442] 
Failed import: ATest_C ATest_C /Game/ThirdPersonCPP/Blueprints/ThirdPersonCharacter.ThirdPersonCharacter_C:MyActor_GEN_VARIABLE.ATest_C_0 (file ../../../../../Projects/UnrealProjects/InstancedBPCrash/Content/ThirdPersonCPP/Blueprints/ThirdPersonCharacter.uasset)


UE4Editor_Core!FDebug::AssertFailed() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:349]
UE4Editor_CoreUObject!FLinkerLoad::VerifyImport() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2442]
UE4Editor_CoreUObject!FLinkerLoad::Verify() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2118]
UE4Editor_CoreUObject!FLinkerLoad::FinalizeCreation() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2008]
UE4Editor_CoreUObject!FLinkerLoad::Tick() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:716]
UE4Editor_CoreUObject!FLinkerLoad::CreateLinker() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:422]
UE4Editor_CoreUObject!GetPackageLinker() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\linker.cpp:671]
UE4Editor_CoreUObject!LoadPackageInternalInner() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1233]
UE4Editor_CoreUObject!LoadPackage() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1477]
UE4Editor_CoreUObject!ResolveName() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:756]
UE4Editor_CoreUObject!StaticLoadObjectInternal() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:843]
UE4Editor_CoreUObject!StaticLoadObject() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:903]
UE4Editor_ContentBrowser!FAssetData::GetAsset() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\assetregistry\public\assetdata.h:232]
UE4Editor_ContentBrowser!SContentBrowser::OnAssetsActivated() [d:\build\++ue4+release-4.15+compile\sync\engine\source\editor\contentbrowser\private\scontentbrowser.cpp:1848]
UE4Editor_ContentBrowser!TBaseSPMethodDelegateInstance<0,SContentBrowser,0,TTypeWrapper<void> __cdecl(TArray<FAssetData,FDefaultAllocator> const & __ptr64,enum EAssetTypeActivationMethod::Type)>::Execute() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:327]
UE4Editor_ContentBrowser!TBaseSPMethodDelegateInstance<0,SContentBrowser,0,void __cdecl(TArray<FAssetData,FDefaultAllocator> const & __ptr64,enum EAssetTypeActivationMethod::Type)>::ExecuteIfSafe() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:434]
UE4Editor_ContentBrowser!TBaseDelegate<void,TArray<FAssetData,FDefaultAllocator> const & __ptr64,enum EAssetTypeActivationMethod::Type>::ExecuteIfBound() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:624]
UE4Editor_ContentBrowser!SAssetView::OnListMouseButtonDoubleClick() [d:\build\++ue4+release-4.15+compile\sync\engine\source\editor\contentbrowser\private\sassetview.cpp:3693]
UE4Editor_ContentBrowser!TBaseSPMethodDelegateInstance<0,SAssetView,0,TTypeWrapper<void> __cdecl(TSharedPtr<FAssetViewItem,0>)>::Execute() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:327]
UE4Editor_ContentBrowser!TBaseSPMethodDelegateInstance<0,SAssetView,0,void __cdecl(TSharedPtr<FAssetViewItem,0>)>::ExecuteIfSafe() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:434]
UE4Editor_ContentBrowser!TBaseDelegate<void,TSharedPtr<FAssetViewItem,0> >::ExecuteIfBound() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:624]
UE4Editor_ContentBrowser!SListView<TSharedPtr<FAssetViewItem,0> >::Private_OnItemDoubleClicked() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\slate\public\widgets\views\slistview.h:800]
UE4Editor_ContentBrowser!STableRow<TSharedPtr<FAssetViewItem,0> >::OnMouseButtonDoubleClick() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\slate\public\widgets\views\stablerow.h:287]
UE4Editor_Slate!<lambda_eeb33fd1b480e3cad58a1531d90d2e14>::operator()() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5473]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FBubblePolicy,FPointerEvent,<lambda_eeb33fd1b480e3cad58a1531d90d2e14> >() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:238]
UE4Editor_Slate!FSlateApplication::RoutePointerDoubleClickEvent() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5471]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonDoubleClickEvent() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5454]
UE4Editor_Slate!FSlateApplication::OnMouseDoubleClick() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5432]
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:1702]
UE4Editor_Core!FWindowsApplication::DeferMessage() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:2120]
UE4Editor_Core!FWindowsApplication::ProcessMessage() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:867]
UE4Editor_Core!FWindowsApplication::AppWndProc() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\private\windows\windowsapplication.cpp:714]
user32
user32
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\private\windows\windowsplatformmisc.cpp:980]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:2977]
UE4Editor!GuardedMain() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\launch\private\launch.cpp:166]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
UE4Editor!WinMain() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:210]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:264]
kernel32
ntdll

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-42158 in the post.

0
Login to Vote

Cannot Reproduce
ComponentUE - Gameplay - Blueprint
Affects Versions4.14.34.154.16
Target Fix4.17
CreatedFeb 20, 2017
ResolvedJun 30, 2017
UpdatedApr 27, 2018
View Jira Issue