Developer Notes

This report is a duplicate of UE-42441

Description

Making a blueprint variable a container (a Set or a Map with the Variable's "Pin Type" set to a custom Enum) and restarting the editor causes the editor to crash when opening the blueprint.

Note:
Only occurs with custom Enums. Crash does not occur if Enum is created in the editor.

Regression:
No - cannot specify container type for variable in 4.14 or earlier

Steps to Reproduce
  1. Open UE4 Editor (any project)
  2. Add code to project based on Actor (MyActor)
  3. Add the following Enum to MyActor.h (above UCLASS() macro)
    UENUM(BlueprintType)
    enum class EKoro : uint8
    {
    	None    UMETA(DisplayName = "None"),
    	Ta        UMETA(DisplayName = "Ta"),
    	Ko        UMETA(DisplayName = "Ko"),
    	Ga        UMETA(DisplayName = "Ga"),
    	Po        UMETA(DisplayName = "Po"),
    	Onu        UMETA(DisplayName = "Onu"),
    	Le        UMETA(DisplayName = "Le"),
    	Av        UMETA(DisplayName = "Av"),
    	Kra        UMETA(DisplayName = "Kra"),
    	Ba        UMETA(DisplayName = "Ba"),
    	Bo        UMETA(DisplayName = "Bo"),
    	Ce        UMETA(DisplayName = "Ce"),
    	De        UMETA(DisplayName = "De"),
    	Fa        UMETA(DisplayName = "Fa"),
    	Fe        UMETA(DisplayName = "Fe"),
    	Su        UMETA(DisplayName = "Su"),
    	Vo        UMETA(DisplayName = "Vo")
    };
    
  4. Compile
  5. Add blueprint based on actor (ActorBP)
  6. Add variable to ActorBP
  7. Set Variable type to EKuro
  8. Click capsule next to variable type to make the variable a container
  9. Compile blueprint
  10. Add element to default Value array
  11. Compile and save blueprint
  12. Restart Editor
  13. Open ActorBP

Result:
Editor crashes when opening the blueprint after restart

Expected:
Blueprint opens and can be edited after editor restart

Callstack
LoginId:7156c35640f86204e61b8383f45dee17
EpicAccountId:c807849e05a0413d99e379f2802cae9c

Assertion failed: PropertyFlags & CPF_HasGetValueTypeHash [File:D:\Build\++UE4+Release-4.15+Compile\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\Property.cpp] [Line: 1240] 



UE4Editor_Core!FDebug::AssertFailed() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:349]
UE4Editor_CoreUObject!UProperty::GetValueTypeHash() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\property.cpp:1241]
UE4Editor_CoreUObject!FScriptSet::Rehash() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\core\public\containers\set.h:1430]
UE4Editor_CoreUObject!UMapProperty::SerializeItem() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\propertymap.cpp:328]
UE4Editor_CoreUObject!FPropertyTag::SerializeTaggedProperty() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\propertytag.cpp:180]
UE4Editor_CoreUObject!UStruct::SerializeTaggedProperties() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:1105]
UE4Editor_CoreUObject!UClass::SerializeDefaultObject() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:3708]
UE4Editor_Engine!UBlueprintGeneratedClass::SerializeDefaultObject() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\engine\private\blueprintgeneratedclass.cpp:286]
UE4Editor_CoreUObject!FLinkerLoad::Preload() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3429]
UE4Editor_CoreUObject!FLinkerLoad::ResolveDeferredExports() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\blueprint\blueprintsupport.cpp:1597]
UE4Editor_CoreUObject!FLinkerLoad::FinalizeBlueprint() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\blueprint\blueprintsupport.cpp:1383]
UE4Editor_CoreUObject!FLinkerLoad::Preload() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3483]
UE4Editor_CoreUObject!FLinkerLoad::CreateExport() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:4148]
UE4Editor_CoreUObject!FLinkerLoad::IndexToObject() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:4370]
UE4Editor_CoreUObject!FLinkerLoad::CreateExport() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3844]
UE4Editor_CoreUObject!FLinkerLoad::IndexToObject() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:4370]
UE4Editor_CoreUObject!FLinkerLoad::CreateExport() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3844]
UE4Editor_CoreUObject!FLinkerLoad::CreateExportAndPreload() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:2894]
UE4Editor_CoreUObject!FLinkerLoad::LoadAllObjects() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\linkerload.cpp:3041]
UE4Editor_CoreUObject!LoadPackageInternalInner() [d:\build\++ue4+release-4.15+compile\sync\engine\source\runtime\coreuobject\private\uobject\uobjectglobals.cpp:1311]
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?

Head over to the existing Questions & Answers thread and let us know what's up.

6
Login to Vote

Won't Fix
ComponentUE - Foundation - Core
Affects Versions4.15
CreatedMar 14, 2017
ResolvedMar 14, 2017
UpdatedApr 27, 2018