Description

Performing a Hot Reload after altering a custom component code class can make the component unusable in Blueprints, and even crash the Editor.

WORKAROUND:
Close and re-open the Editor.

Steps to Reproduce
  1. Create a new code project using the First Person template, no starter content.
  2. Add a new code class derived from SceneComponent. Name the component Projector.
  3. Add the following to the new Projector UCLASS macro:
    UCLASS(Config=Game, PerObjectConfig, ClassGroup=(Dome), BlueprintType, HideCategories=(Trigger, PhysicsVolume), meta=(BlueprintSpawnableComponent) )
  4. Close the Editor.
  5. Build the project in Visual Studio.
  6. Open the project in the Editor.
  7. Create a new Actor Blueprint.
  8. Click the "Add Component" button.
    • Note the Project class is present in the Dome group. See the attached BeforeHotReload image.
  9. Add the following code to the header file for the Projector class: int32 m1, m2, m3, m4;
  10. Click the Compile button in the Editor.
  11. In the new Actor Blueprint, click the "Add Component" button.
    • Note the name of the component in the Dome group is now "HOTRELOADED Projector 0".
  12. Add the component to the Blueprint and click Save.
    • The following error message is displayed:
      Can't save C:/Users/Tim.Lincoln/Documents/Unreal Projects/TestHotReload1/Content/FirstPerson/Blueprints/Actor1_BP.uasset: Graph is linked to private object(s) in an external package.
      External Object(s):
      HOTRELOADED_Projector_0
      /Engine/Transient
        
      Try to find the chain of references to that object (may take some time)?
      
  13. Add a Begin Play node to the Event Graph.
  14. Drag off of the Begin Play node's execution pin and try to create a Cast To Projector node.

RESULT:
The Editor crashes.

EXPECTED:
The node is created, an error message is displayed, or the Cast To Projector node is not an option in the search list.

Callstack

CRASH REPORT:
[Link Removed]

MachineId:926CC4CD4DE75FA30341E2895D619D6E

Unknown exception - code 00000001 (first/second chance not available)

Assertion failed: (TargetType == NULL) || (!TargetType->HasAnyClassFlags(CLASS_NewerVersionExists)) [Link Removed] [Line: 26]

KERNELBASE + 37901 bytes
UE4Editor_Core!FOutputDeviceWindowsError::Serialize() + 292 bytes [d:\main-builds\ue4\engine\source\runtime\core\private\windows\windowsplatformoutputdevices.cpp:95]
UE4Editor_Core!FOutputDevice::Logf__VA() + 248 bytes [d:\main-builds\ue4\engine\source\runtime\core\private\misc\outputdevice.cpp:144]
UE4Editor_Core!FDebug::AssertFailed() + 1079 bytes [d:\main-builds\ue4\engine\source\runtime\core\private\misc\outputdevice.cpp:224]
UE4Editor_BlueprintGraph!UK2Node_DynamicCast::AllocateDefaultPins() + 192 bytes [d:\main-builds\ue4\engine\source\editor\blueprintgraph\private\k2node_dynamiccast.cpp:28]
UE4Editor_BlueprintGraph!UBlueprintNodeSpawner::SpawnEdGraphNode() + 491 bytes [d:\main-builds\ue4\engine\source\editor\blueprintgraph\private\blueprintnodespawner.cpp:283]
UE4Editor_BlueprintGraph!UBlueprintNodeSpawner::SpawnNode<UEdGraphNode>() + 105 bytes [d:\main-builds\ue4\engine\source\editor\blueprintgraph\public\blueprintnodespawner.h:237]
UE4Editor_BlueprintGraph!UBlueprintNodeSpawner::Invoke() + 93 bytes [d:\main-builds\ue4\engine\source\editor\blueprintgraph\private\blueprintnodespawner.cpp:229]
UE4Editor_Kismet!FBlueprintActionMenuItem::PerformAction() + 1827 bytes [d:\main-builds\ue4\engine\source\editor\kismet\private\blueprintactionmenuitem.cpp:153]
UE4Editor_Kismet!FBlueprintActionMenuItem::PerformAction() + 152 bytes [d:\main-builds\ue4\engine\source\editor\kismet\private\blueprintactionmenuitem.cpp:202]
UE4Editor_Kismet!SBlueprintActionMenu::OnActionSelected() + 541 bytes [d:\main-builds\ue4\engine\source\editor\kismet\private\sblueprintactionmenu.cpp:454]
UE4Editor_Kismet!TBaseSPMethodDelegateInstance<0,SBlueprintActionMenu,0,TTypeWrapper<void> __cdecl(TArray<TSharedPtr<FEdGraphSchemaAction,0>,FDefaultAllocator> const & __ptr64)>::Execute() + 76 bytes [d:\main-builds\ue4\engine\source\runtime\core\public\delegates\delegateinstancesimpl_variadics.inl:282]
UE4Editor_GraphEditor!SGraphActionMenu::HandleSelection() + 153 bytes [d:\main-builds\ue4\engine\source\editor\grapheditor\private\sgraphactionmenu.cpp:1302]
UE4Editor_GraphEditor!SGraphActionMenu::OnMouseButtonDownEvent() + 508 bytes [d:\main-builds\ue4\engine\source\editor\grapheditor\private\sgraphactionmenu.cpp:1199]
UE4Editor_GraphEditor!TBaseSPMethodDelegateInstance<0,SGraphActionMenu,0,bool __cdecl(TWeakPtr<FEdGraphSchemaAction,0>)>::Execute() + 101 bytes [d:\main-builds\ue4\engine\source\runtime\core\public\delegates\delegateinstancesimpl_variadics.inl:282]
UE4Editor_GraphEditor!TBaseDelegate<bool,TWeakPtr<FEdGraphSchemaAction,0> >::Execute() + 66 bytes [d:\main-builds\ue4\engine\source\runtime\core\public\delegates\delegatesignatureimpl_variadics.inl:440]
UE4Editor_GraphEditor!SGraphPaletteItem::OnMouseButtonDown() + 100 bytes [d:\main-builds\ue4\engine\source\editor\grapheditor\private\sgraphpalette.cpp:88]
UE4Editor_Slate!<lambda_2944fcd867c13fce09ac1f6fe9cbe583>::operator()() + 198 bytes [d:\main-builds\ue4\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:3946]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FBubblePolicy,FPointerEvent,<lambda_2944fcd867c13fce09ac1f6fe9cbe583> >() + 246 bytes [d:\main-builds\ue4\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:210]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonDownEvent() + 1184 bytes [d:\main-builds\ue4\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:3950]
UE4Editor_Slate!FSlateApplication::OnMouseDown() + 315 bytes [d:\main-builds\ue4\engine\source\runtime\slate\private\framework\application\slateapplication.cpp:3859]
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() + 3178 bytes [d:\main-builds\ue4\engine\source\runtime\core\private\windows\windowsapplication.cpp:1344]
UE4Editor_Core!FWindowsApplication::DeferMessage() + 318 bytes [d:\main-builds\ue4\engine\source\runtime\core\private\windows\windowsapplication.cpp:1710]
UE4Editor_Core!FWindowsApplication::ProcessMessage() + 4359 bytes [d:\main-builds\ue4\engine\source\runtime\core\private\windows\windowsapplication.cpp:711]
UE4Editor_Core!FWindowsApplication::AppWndProc() + 114 bytes [d:\main-builds\ue4\engine\source\runtime\core\private\windows\windowsapplication.cpp:629]
user32 + 105425 bytes
user32 + 104666 bytes
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() + 118 bytes [d:\main-builds\ue4\engine\source\runtime\core\private\windows\windowsplatformmisc.cpp:775]
UE4Editor!FEngineLoop::Tick() + 3737 bytes [d:\main-builds\ue4\engine\source\runtime\launch\private\launchengineloop.cpp:2239]
UE4Editor!GuardedMain() + 1404 bytes [d:\main-builds\ue4\engine\source\runtime\launch\private\launch.cpp:142]
UE4Editor!GuardedMainWrapper() + 26 bytes [d:\main-builds\ue4\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() + 249 bytes [d:\main-builds\ue4\engine\source\runtime\launch\private\windows\launchwindows.cpp:202]
UE4Editor!__tmainCRTStartup() + 329 bytes [f:\dd\vctools\crt\crtw32\dllstuff\crtexe.c:618]

Have Comments or More Details?

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

0
Login to Vote

Fixed
ComponentUE - Gameplay - Blueprint
Affects Versions4.6.14.8
Target Fix4.8
Fix Commit2477815
CreatedFeb 19, 2015
ResolvedMar 16, 2015
UpdatedApr 27, 2018