Description

Performing a Hot Reload after changing the default value of a property in an ActorComponent that is included in an Actor class triggers an ensure if a Blueprint has been created from that Actor class. This only occurs if a Blueprint has been created from the Actor class. No ensure is triggered if there is no Blueprint.

This may be related to [Link Removed].

Steps to Reproduce
  1. Create a new Basic Code project.
  2. Add a new ActorComponent code class to the project.
  3. Add an EditAnywhere property of any type to the new ActorComponent class (eg. float TestVar).
  4. Set a default value for the new property in the component's constructor.
  5. Add a new Actor code class to the project.
  6. Add a pointer to the component created in step 2 to the new Actor class with the VisibleDefaultsOnly UPROPERTY specifier.
  7. Create a default subobject for the pointer in the actor's constructor.
  8. Open the project in the Editor.
  9. Create a new Blueprint that derives from the Actor class created in step 5.
  10. Save the Blueprint.
  11. In Visual Studio, change the default value for the property in the ActorComponent to something different.
  12. Click the Compile button in the Editor to start a Hot Reload.

RESULT:
The Hot Reload completes successfully, but an ensure is triggered.

EXPECTED:
The Hot Reload completes successfully with no ensure triggered.

Callstack

Ensure callstack from Main (CL 4362844).

LogOutputDevice: Error: === Handled ensure: ===
LogOutputDevice: Error: Ensure condition failed: bArchetypeReinstanced [File:D:\Main-Builds\Stream\Engine\Source\Editor\UnrealEd\Private\Kismet2\KismetReinstanceUtilities.cpp] [Line: 1601]
LogOutputDevice: Error: Reinstancing non-actor (/Engine/Transient.Default__NewBlueprint_C:MyTestComponent); failed to resolve archetype object - property values may be lost.
LogOutputDevice: Error: Stack: 
LogOutputDevice: Error: [Callstack] 0x000007fed1a11ae6 UE4Editor-Core.dll!FWindowsPlatformStackWalk::StackWalkAndDump() [d:\main-builds\stream\engine\source\runtime\core\private\windows\windowsplatformstackwalk.cpp:236]
LogOutputDevice: Error: [Callstack] 0x000007fed1738422 UE4Editor-Core.dll!FDebug::EnsureFailed() [d:\main-builds\stream\engine\source\runtime\core\private\misc\assertionmacros.cpp:305]
LogOutputDevice: Error: [Callstack] 0x000007fed174a302 UE4Editor-Core.dll!FDebug::OptionallyLogFormattedEnsureMessageReturningFalseImpl() [d:\main-builds\stream\engine\source\runtime\core\private\misc\assertionmacros.cpp:439]
LogOutputDevice: Error: [Callstack] 0x000007febf987176 UE4Editor-UnrealEd.dll!ReplaceObjectHelper() [d:\main-builds\stream\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:1601]
LogOutputDevice: Error: [Callstack] 0x000007febf984eac UE4Editor-UnrealEd.dll!FBlueprintCompileReinstancer::ReplaceInstancesOfClass_Inner() [d:\main-builds\stream\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:1951]
LogOutputDevice: Error: [Callstack] 0x000007febf983ecd UE4Editor-UnrealEd.dll!FBlueprintCompileReinstancer::ReplaceInstancesOfClass() [d:\main-builds\stream\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:1460]
LogOutputDevice: Error: [Callstack] 0x000007febf97ebe9 UE4Editor-UnrealEd.dll!FBlueprintCompileReinstancer::ReinstanceInner() [d:\main-builds\stream\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:661]
LogOutputDevice: Error: [Callstack] 0x000007febf97fda4 UE4Editor-UnrealEd.dll!FBlueprintCompileReinstancer::ReinstanceObjects() [d:\main-builds\stream\engine\source\editor\unrealed\private\kismet2\kismetreinstanceutilities.cpp:904]
LogOutputDevice: Error: [Callstack] 0x000007feaa48a7e3 UE4Editor-HotReload.dll!FHotReloadModule::ReinstanceClass() [d:\main-builds\stream\engine\source\developer\hotreload\private\hotreload.cpp:1259]
LogOutputDevice: Error: [Callstack] 0x000007feaa48aabc UE4Editor-HotReload.dll!FHotReloadModule::ReinstanceClasses() [d:\main-builds\stream\engine\source\developer\hotreload\private\hotreload.cpp:1242]
LogOutputDevice: Error: [Callstack] 0x000007feaa482ba6 UE4Editor-HotReload.dll!TBaseRawMethodDelegateInstance<0,FHotReloadModule,void __cdecl(void)>::ExecuteIfSafe() [d:\main-builds\stream\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:503]
LogOutputDevice: Error: [Callstack] 0x000007fed12ac08a UE4Editor-CoreUObject.dll!UClassReplaceHotReloadClasses() [d:\main-builds\stream\engine\source\runtime\coreuobject\private\uobject\uobjectbase.cpp:746]
LogOutputDevice: Error: [Callstack] 0x000007fed128e1a6 UE4Editor-CoreUObject.dll!ProcessNewlyLoadedUObjects() [d:\main-builds\stream\engine\source\runtime\coreuobject\private\uobject\uobjectbase.cpp:872]
LogOutputDevice: Error: [Callstack] 0x000007fed0fd4e17 UE4Editor-CoreUObject.dll!TBaseStaticDelegateInstance<void __cdecl(void)>::ExecuteIfSafe() [d:\main-builds\stream\engine\source\runtime\core\public\delegates\delegateinstancesimpl.h:788]
LogOutputDevice: Error: [Callstack] 0x000007fed164282e UE4Editor-Core.dll!TBaseMulticastDelegate<void>::Broadcast() [d:\main-builds\stream\engine\source\runtime\core\public\delegates\delegatesignatureimpl.inl:974]
LogOutputDevice: Error: [Callstack] 0x000007fed17fbff2 UE4Editor-Core.dll!FModuleManager::LoadModuleWithFailureReason() [d:\main-builds\stream\engine\source\runtime\core\private\modules\modulemanager.cpp:510]
LogOutputDevice: Error: [Callstack] 0x000007fed17fb309 UE4Editor-Core.dll!FModuleManager::LoadModule() [d:\main-builds\stream\engine\source\runtime\core\private\modules\modulemanager.cpp:356]
LogOutputDevice: Error: [Callstack] 0x000007feaa480503 UE4Editor-HotReload.dll!FHotReloadModule::DoHotReloadInternal() [d:\main-builds\stream\engine\source\developer\hotreload\private\hotreload.cpp:784]
LogOutputDevice: Error: [Callstack] 0x000007feaa47e087 UE4Editor-HotReload.dll!UE4Function_Private::TFunctionRefCaller<<lambda_9c48366a887b61ded2fa445a677e9fc1>,void __cdecl(TMap<FName,FString,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<FName,FString,0> > const &,bool,enum ECompilationResult::Type)>::Call() [d:\main-builds\stream\engine\source\runtime\c
ore\public\templates\function.h:371]
LogOutputDevice: Error: [Callstack] 0x000007feaa47a08b UE4Editor-HotReload.dll!UE4Function_Private::TFunctionRefBase<UE4Function_Private::FFunctionStorage,void __cdecl(TMap<FName,FString,FDefaultSetAllocator,TDefaultMapHashableKeyFuncs<FName,FString,0> > const &,bool,enum ECompilationResult::Type)>::operator()() [d:\main-builds\stream\engine\source\runtime\c
ore\public\templates\function.h:493]
LogOutputDevice: Error: [Callstack] 0x000007feaa47e9bf UE4Editor-HotReload.dll!FHotReloadModule::CheckForFinishedModuleDLLCompile() [d:\main-builds\stream\engine\source\developer\hotreload\private\hotreload.cpp:1870]
LogOutputDevice: Error: [Callstack] 0x000007feaa492536 UE4Editor-HotReload.dll!FHotReloadModule::Tick() [d:\main-builds\stream\engine\source\developer\hotreload\private\hotreload.cpp:1416]
LogOutputDevice: Error: [Callstack] 0x000007fed15da4f8 UE4Editor-Core.dll!FTicker::Tick() [d:\main-builds\stream\engine\source\runtime\core\private\containers\ticker.cpp:95]
LogOutputDevice: Error: [Callstack] 0x000000013f6a81a7 UE4Editor.exe!FEngineLoop::Tick() [d:\main-builds\stream\engine\source\runtime\launch\private\launchengineloop.cpp:3755]
LogOutputDevice: Error: [Callstack] 0x000000013f6b501c UE4Editor.exe!GuardedMain() [d:\main-builds\stream\engine\source\runtime\launch\private\launch.cpp:166]
LogOutputDevice: Error: [Callstack] 0x000000013f6b509a UE4Editor.exe!GuardedMainWrapper() [d:\main-builds\stream\engine\source\runtime\launch\private\windows\launchwindows.cpp:145]
LogOutputDevice: Error: [Callstack] 0x000000013f6c3c0a UE4Editor.exe!WinMain() [d:\main-builds\stream\engine\source\runtime\launch\private\windows\launchwindows.cpp:276]
LogOutputDevice: Error: [Callstack] 0x000000013f6c58a2 UE4Editor.exe!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
LogOutputDevice: Error: [Callstack] 0x00000000771459cd kernel32.dll!UnknownFunction []
LogOutputDevice: Error: [Callstack] 0x00000000773a383d ntdll.dll!UnknownFunction []

Have Comments or More Details?

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

92
Login to Vote

Won't Fix
CreatedSep 13, 2018
ResolvedAug 18, 2021
UpdatedAug 18, 2021