Description

Attempting to duplicate an instance of a Blueprint in a level where the parent code class has overridden PreEditChange() without including a call to Super results in the Editor crashing.

Steps to Reproduce
  1. Create a new Basic Code project.
  2. Add a new Actor code class to the project.
  3. In the new Actor code class, override PreEditChange(), but do not include a Super call.
    • eg:
      // .h
      #if WITH_EDITOR
      	void PreEditChange(UProperty* PropertyThatWillChange) override;
      #endif
      
      // .cpp
      #if WITH_EDITOR
      void AMyActor::PreEditChange(UProperty* PropertyThatWillChange)
      {
      	
      }
      #endif
      
  4. Create a new Blueprint that derives from the new Actor code class.
  5. Add a Skeletal Mesh Component to the Blueprint.
  6. Set a Skeletal Mesh and Anim Blueprint in the Skeletal Mesh Component.
  7. Place an instance of the Blueprint into the level.
  8. Select the instance of the Blueprint in the World Outliner.
  9. Right-click the instance and select Edit -> Duplicate.

RESULT:
The Editor crashes due to an access violation. The log shows the following error message immediately before the crash: Error: BEGIN OBJECT: No base template named TutorialTPP_AnimBlueprint_C_250 found in parent class SkinnedMeshComponent: Begin Object Name="TutorialTPP_AnimBlueprint_C_250"

EXPECTED:
Either a warning message is displayed stating that the Blueprint cannot be duplicated (and ideally indicates why), a compile error occurs noting that the Super call is missing, or the Blueprint is successfully duplicated.

Callstack
Access violation - code c0000005 (first/second chance not available)

UE4Editor_Core!FParse::LineExtended() [d:\main-builds\stream\engine\source\runtime\core\private\misc\parse.cpp:1059]
UE4Editor_UnrealEd!ImportProperties() [d:\main-builds\stream\engine\source\editor\unrealed\private\editorobject.cpp:258]
UE4Editor_UnrealEd!ImportObjectProperties() [d:\main-builds\stream\engine\source\editor\unrealed\private\editorobject.cpp:707]
UE4Editor_UnrealEd!ImportObjectProperties() [d:\main-builds\stream\engine\source\editor\unrealed\private\editorobject.cpp:815]
UE4Editor_UnrealEd!ULevelFactory::FactoryCreateText() [d:\main-builds\stream\engine\source\editor\unrealed\private\factories\editorfactories.cpp:1125]
UE4Editor_UnrealEd!UUnrealEdEngine::edactPasteSelected() [d:\main-builds\stream\engine\source\editor\unrealed\private\editoractor.cpp:351]
UE4Editor_UnrealEd!DuplicateSelectedActors::FDuplicateJob::DuplicateActorsToLevel() [d:\main-builds\stream\engine\source\editor\unrealed\private\editoractor.cpp:451]
UE4Editor_UnrealEd!UUnrealEdEngine::edactDuplicateSelected() [d:\main-builds\stream\engine\source\editor\unrealed\private\editoractor.cpp:565]
UE4Editor_UnrealEd!UUnrealEdEngine::Exec_Actor() [d:\main-builds\stream\engine\source\editor\unrealed\private\unrealedsrv.cpp:2754]
UE4Editor_UnrealEd!UUnrealEdEngine::Exec() [d:\main-builds\stream\engine\source\editor\unrealed\private\unrealedsrv.cpp:759]
UE4Editor_UnrealEd!UEditorEngine::Exec() [d:\main-builds\stream\engine\source\editor\unrealed\private\editorserver.cpp:5472]
UE4Editor_UnrealEd!UUnrealEdEngine::Exec() [d:\main-builds\stream\engine\source\editor\unrealed\private\unrealedsrv.cpp:696]
UE4Editor_LevelEditor!FLevelEditorActionCallbacks::ExecuteExecCommand() [d:\main-builds\stream\engine\source\editor\leveleditor\private\leveleditoractions.cpp:1674]
UE4Editor_LevelEditor!TBaseStaticDelegateInstance<void __cdecl(void),FString>::ExecuteIfSafe() [d:\main-builds\stream\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:788]
UE4Editor_Slate!FUICommandList::ExecuteAction() [d:\main-builds\stream\engine\source\runtime\slate\private\framework\commands\uicommandlist.cpp:97]
UE4Editor_Slate!SMenuEntryBlock::OnClicked() [d:\main-builds\stream\engine\source\runtime\slate\private\framework\multibox\smenuentryblock.cpp:1028]
UE4Editor_Slate!SMenuEntryBlock::OnMenuItemButtonClicked() [d:\main-builds\stream\engine\source\runtime\slate\private\framework\multibox\smenuentryblock.cpp:988]
UE4Editor_Slate!TBaseSPMethodDelegateInstance<0,SMenuEntryBlock,0,FReply __cdecl(void)>::Execute() [d:\main-builds\stream\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:269]
UE4Editor_Slate!SButton::OnMouseButtonUp() [d:\main-builds\stream\engine\source\runtime\slate\private\widgets\input\sbutton.cpp:282]
UE4Editor_Slate!SMenuEntryButton::OnMouseButtonUp() [d:\main-builds\stream\engine\source\runtime\slate\private\framework\multibox\smenuentryblock.cpp:385]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_1002768c627006711ef2f351a87ec0e7> >() [d:\main-builds\stream\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:268]
UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() [d:\main-builds\stream\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5434]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() [d:\main-builds\stream\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5932]
UE4Editor_Slate!FSlateApplication::OnMouseUp() [d:\main-builds\stream\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:5912]
UE4Editor_ApplicationCore!FWindowsApplication::ProcessDeferredMessage() [d:\main-builds\stream\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:1726]
UE4Editor_ApplicationCore!FWindowsApplication::DeferMessage() [d:\main-builds\stream\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:2172]
UE4Editor_ApplicationCore!FWindowsApplication::ProcessMessage() [d:\main-builds\stream\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:889]
UE4Editor_ApplicationCore!FWindowsApplication::AppWndProc() [d:\main-builds\stream\engine\source\runtime\applicationcore\private\windows\windowsapplication.cpp:726]
user32
user32
UE4Editor_ApplicationCore!FWindowsPlatformApplicationMisc::PumpMessages() [d:\main-builds\stream\engine\source\runtime\applicationcore\private\windows\windowsplatformapplicationmisc.cpp:129]
UE4Editor!FEngineLoop::Tick() [d:\main-builds\stream\engine\source\runtime\launch\private\launchengineloop.cpp:3286]
UE4Editor!GuardedMain() [d:\main-builds\stream\engine\source\runtime\launch\private\launch.cpp:166]
UE4Editor!GuardedMainWrapper() [d:\main-builds\stream\engine\source\runtime\launch\private\windows\launchwindows.cpp:144]
UE4Editor!WinMain() [d:\main-builds\stream\engine\source\runtime\launch\private\windows\launchwindows.cpp:223]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:283]
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-58657 in the post.

0
Login to Vote

Won't Fix
ComponentUE - Gameplay - Blueprint
Affects Versions4.18.34.19.14.20
CreatedMay 4, 2018
ResolvedAug 18, 2021
UpdatedAug 18, 2021