Description

Attempting to call a blueprint event on a CDO object causes the editor to crash.

Regression:
Yes- Repro steps did not crash editor in binary 4.15.3 (CL 3450819)

Steps to Reproduce
  1. Open UE4 Editor (third person template)
  2. Add the following class declaration to ProjectNameCharacter.h above the character class declaration
    UCLASS(Blueprintable)
    class UMyBlueprintObject : public UObject
    {
    	GENERATED_BODY()
    public:
    	UMyBlueprintObject() {};
    
    	UFUNCTION(BlueprintImplementableEvent, Category = "Foo")
    		void Bar(UObject* SomeObject) const;
    
    };
    
  3. add the following code inside character class delcaration
    	virtual void BeginPlay() override;
    
    	UPROPERTY(EditAnywhere, Category = "Foobar")
    		TSubclassOf<UMyBlueprintObject> DerivedBlueprintObject;
    
  4. add the following to ProjectNameCharacter.cpp
    void A[ProjectName]Character::BeginPlay()
    {
    	Super::BeginPlay();
    
    	if (*DerivedBlueprintObject)
    	{
    		DerivedBlueprintObject->GetDefaultObject<UMyBlueprintObject>()->Bar(this);
    	}
    }
    
  5. Compile
  6. Open ProjectFolder/Config/DefaultEditorPerProjectUserSettings.ini
  7. Add
    ContentBrowserTab1.SelectedPaths=/Game/ThirdPersonCPP[DefaultEventNodes]+Node=(TargetClass=MyBlueprintObject TargetEvent="Bar")
  8. Save and close ini file
  9. Open project
  10. Create blueprint based on MyBlueprintObject (TestBP)
  11. Drag off of Bar event and add Print String node
  12. Select the character in the level
  13. In the details panel, search "obj" and set Derived Blueprint Object to TestBP
  14. PIE

Result:
Editor crashes with provided callstack

Expected:
PIE session runs and print string message appears on screen

Callstack
LoginId:7156c35640f86204e61b8383f45dee17
EpicAccountId:e8c7fa630b6440f69a25a2c64d6c482c

Assertion failed: ContainerPtr [File:D:\Build\++UE4+Release-4.16+Compile\Sync\Engine\Source\Runtime\CoreUObject\Public\UObject/UnrealType.h] [Line: 324] 



UE4Editor_Core!FDebug::AssertFailed() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\core\private\misc\assertionmacros.cpp:349]
UE4Editor_CoreUObject!UObject::execLetValueOnPersistentFrame() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1788]
UE4Editor_CoreUObject!UObject::ProcessInternal() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:943]
UE4Editor_CoreUObject!UFunction::Invoke() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\coreuobject\private\uobject\class.cpp:4461]
UE4Editor_CoreUObject!UObject::ProcessEvent() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\coreuobject\private\uobject\scriptcore.cpp:1313]
UE4Editor_CDOCrash_5003!UMyBlueprintObject::Bar()
UE4Editor_Engine!AActor::DispatchBeginPlay() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\engine\private\actor.cpp:3104]
UE4Editor_Engine!AWorldSettings::NotifyBeginPlay() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\engine\private\worldsettings.cpp:187]
UE4Editor_Engine!AGameStateBase::HandleBeginPlay() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\engine\private\gamestatebase.cpp:177]
UE4Editor_Engine!UWorld::BeginPlay() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\engine\private\world.cpp:3443]
UE4Editor_Engine!UGameInstance::StartPlayInEditorGameInstance() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\engine\private\gameinstance.cpp:338]
UE4Editor_UnrealEd!UEditorEngine::CreatePIEGameInstance() [d:\build\++ue4+release-4.16+compile\sync\engine\source\editor\unrealed\private\playlevel.cpp:3427]
UE4Editor_UnrealEd!UEditorEngine::PlayInEditor() [d:\build\++ue4+release-4.16+compile\sync\engine\source\editor\unrealed\private\playlevel.cpp:2515]
UE4Editor_UnrealEd!UEditorEngine::StartQueuedPlayMapRequest() [d:\build\++ue4+release-4.16+compile\sync\engine\source\editor\unrealed\private\playlevel.cpp:1217]
UE4Editor_UnrealEd!UEditorEngine::Tick() [d:\build\++ue4+release-4.16+compile\sync\engine\source\editor\unrealed\private\editorengine.cpp:1525]
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() [d:\build\++ue4+release-4.16+compile\sync\engine\source\editor\unrealed\private\unrealedengine.cpp:386]
UE4Editor!FEngineLoop::Tick() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\launchengineloop.cpp:3119]
UE4Editor!GuardedMain() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\launch.cpp:166]
UE4Editor!GuardedMainWrapper() [d:\build\++ue4+release-4.16+compile\sync\engine\source\runtime\launch\private\windows\launchwindows.cpp:134]
UE4Editor!WinMain() [d:\build\++ue4+release-4.16+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:253]
kernel32
ntdll

Have Comments or More Details?

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

10
Login to Vote

Fixed
ComponentUE - Gameplay - Blueprint
Affects Versions4.16.1
Target Fix4.16.34.17
Fix Commit3525425
Main Commit3555226
Release Commit3525425
CreatedJun 27, 2017
ResolvedJul 7, 2017
UpdatedApr 27, 2018