Description

When you have an actor with a Hierarchical Instanced Static Mesh component that has a Static Mesh set and is populated with at least 1 instance and then duplicate it or move it to another level, it will cause a crash.

User who reported this mentioned the following about a possible fix:

"It seems internal ClusterTree not been serialized correctly in the actor copy/paste process. One possible fix is to make sure HierarchicalInstancedStaticMeshComponent::BuildTree() been called after actor with HierarchicalInstancedStaticMeshComponent been pasted in to the level."

Regression?: Yes
This did not occur in 4.12.5-3039270+++UE4+Release-4.12
This does occur in 4.13.2-3172292+++UE4+Release-4.13

Steps to Reproduce

First reproduction by duplicating:

  1. Add an Empty Actor to the level
  2. Add a Hierarchical Instance Static Mesh component to the Empty Actor
  3. Set a Static Mesh
  4. Add one instance
  5. Ensure that the Actor is selected (not the component), right-click the actor in the level and duplicate it
    Result: The editor crashes
    Expected: The actor should duplicate without an issue

Reproduction from moving the asset to another level:

  1. Create two levels
  2. Inside of the first level, add an Empty Actor
  3. Add a Hierarchical Instance Static Mesh component to the Empty Actor
  4. Set a Static Mesh
  5. Add one instance
  6. Ensure that the Actor is selected (not the component), open the "Levels" window from the "Windows" menu.
  7. Click "Levels" > "Add Existing" and select the second level
  8. Right-click on the newly added level and select "Move Selected Actors to Level"
  9. Attempt to move the actor in the level with the transform widget
    Result: The editor crashes
    Expected: The actor should move without an issue.
Callstack

First reproduction's callstack:

 UE4Editor_Engine!UHierarchicalInstancedStaticMeshComponent::UpdateInstanceTransform() hierarchicalinstancedstaticmesh.cpp:2004 
UE4Editor_Engine!UInstancedStaticMeshComponent::OnUpdateTransform() instancedstaticmesh.cpp:1549 
UE4Editor_Engine!USceneComponent::PropagateTransformUpdate() scenecomponent.cpp:506 
UE4Editor_Engine!USceneComponent::UpdateComponentToWorldWithParent() scenecomponent.cpp:434 
UE4Editor_Engine!USceneComponent::UpdateComponentToWorld() scenecomponent.h:766 
UE4Editor_Engine!USceneComponent::UpdateChildTransforms() scenecomponent.cpp:2002 
UE4Editor_Engine!USceneComponent::PropagateTransformUpdate() scenecomponent.cpp:525 
UE4Editor_Engine!USceneComponent::UpdateComponentToWorldWithParent() scenecomponent.cpp:434 
UE4Editor_Engine!USceneComponent::InternalSetWorldLocationAndRotation() scenecomponent.cpp:2389 
UE4Editor_Engine!USceneComponent::MoveComponentImpl() scenecomponent.cpp:2512 
UE4Editor_Engine!USceneComponent::SetRelativeLocationAndRotation() scenecomponent.cpp:1006 
UE4Editor_Engine!USceneComponent::SetRelativeLocationAndRotation() scenecomponent.cpp:1024 
UE4Editor_Engine!USceneComponent::SetWorldLocationAndRotation() scenecomponent.cpp:1242 
UE4Editor_Engine!AActor::TeleportTo() actor.cpp:394 
UE4Editor_UnrealEd!UUnrealEdEngine::edactPasteSelected() editoractor.cpp:334 
UE4Editor_UnrealEd!DuplicateSelectedActors::FDuplicateJob::DuplicateActorsToLevel() editoractor.cpp:412 
UE4Editor_UnrealEd!UUnrealEdEngine::edactDuplicateSelected() editoractor.cpp:526 
UE4Editor_UnrealEd!UUnrealEdEngine::Exec_Actor() unrealedsrv.cpp:2670 
UE4Editor_UnrealEd!UUnrealEdEngine::Exec() unrealedsrv.cpp:681 
UE4Editor_UnrealEd!UEditorEngine::Exec() editorserver.cpp:5503 
UE4Editor_UnrealEd!UUnrealEdEngine::Exec() unrealedsrv.cpp:624 
UE4Editor_LevelEditor!FLevelEditorActionCallbacks::ExecuteExecCommand() leveleditoractions.cpp:1633 
UE4Editor_LevelEditor!TBaseStaticDelegateInstance<void __cdecl() delegateinstancesimpl.h:1017 
UE4Editor_Slate!FUICommandList::ExecuteAction() uicommandlist.cpp:92 
UE4Editor_Slate!SMenuEntryBlock::OnClicked() smenuentryblock.cpp:1027 
UE4Editor_Slate!SMenuEntryBlock::OnMenuItemButtonClicked() smenuentryblock.cpp:987 
UE4Editor_Slate!TMemberFunctionCaller<SMenuEntryBlock,FReply() delegateinstanceinterface.h:161 
UE4Editor_Slate!TTupleImpl<TIntegerSequence<unsigned int> >::ApplyAfter<TMemberFunctionCaller<SMenuEntryBlock,FReply() tuple.h:115 
UE4Editor_Slate!TBaseSPMethodDelegateInstance<0,SMenuEntryBlock,0,FReply __cdecl() delegateinstancesimpl.h:317 
UE4Editor_Slate!TBaseDelegate<FReply>::Execute() delegatesignatureimpl.inl:521 
UE4Editor_Slate!SButton::OnMouseButtonUp() sbutton.cpp:278 
UE4Editor_Slate!SMenuEntryButton::OnMouseButtonUp() smenuentryblock.cpp:385 
UE4Editor_Slate!<lambda_8d0e9a1da76abd0a756a3a9d775f5ed1>::operator() slateapplication.cpp:4901 
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_8d0e9a1da76abd0a756a3a9d775f5ed1> >() slateapplication.cpp:215 
UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() slateapplication.cpp:4890 
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() slateapplication.cpp:5348 
UE4Editor_Slate!FSlateApplication::OnMouseUp() slateapplication.cpp:5328 
UE4Editor_Core!FWindowsApplication::ProcessDeferredMessage() windowsapplication.cpp:1584 
UE4Editor_Core!FWindowsApplication::DeferMessage() windowsapplication.cpp:1930 
UE4Editor_Core!FWindowsApplication::ProcessMessage() windowsapplication.cpp:747 
UE4Editor_Core!FWindowsApplication::AppWndProc() windowsapplication.cpp:669 
user32!<Unknown> 
user32!<Unknown> 
UE4Editor_Core!FWindowsPlatformMisc::PumpMessages() windowsplatformmisc.cpp:905 
UE4Editor!FEngineLoop::Tick() launchengineloop.cpp:2788 
UE4Editor!GuardedMain() launch.cpp:156 
UE4Editor!GuardedMainWrapper() launchwindows.cpp:126 
UE4Editor!WinMain() launchwindows.cpp:202 
UE4Editor!__scrt_common_main_seh() exe_common.inl:264 
kernel32!<Unknown> 
ntdll!<Unknown> 

Second reproduction's callstack:

 UE4Editor_Engine!UHierarchicalInstancedStaticMeshComponent::UpdateInstanceTransform() hierarchicalinstancedstaticmesh.cpp:2004 
UE4Editor_Engine!UInstancedStaticMeshComponent::OnUpdateTransform() instancedstaticmesh.cpp:1549 
UE4Editor_Engine!USceneComponent::PropagateTransformUpdate() scenecomponent.cpp:506 
UE4Editor_Engine!USceneComponent::UpdateComponentToWorldWithParent() scenecomponent.cpp:434 
UE4Editor_Engine!USceneComponent::UpdateComponentToWorld() scenecomponent.h:766 
UE4Editor_Engine!USceneComponent::UpdateChildTransforms() scenecomponent.cpp:2002 
UE4Editor_Engine!USceneComponent::PropagateTransformUpdate() scenecomponent.cpp:525 
UE4Editor_Engine!USceneComponent::UpdateComponentToWorldWithParent() scenecomponent.cpp:434 
UE4Editor_Engine!USceneComponent::InternalSetWorldLocationAndRotation() scenecomponent.cpp:2389 
UE4Editor_Engine!USceneComponent::MoveComponentImpl() scenecomponent.cpp:2512 
UE4Editor_Engine!USceneComponent::SetRelativeLocationAndRotation() scenecomponent.cpp:1006 
UE4Editor_Engine!USceneComponent::SetRelativeTransform() scenecomponent.cpp:1132 
UE4Editor_Engine!USceneComponent::SetWorldTransform() scenecomponent.cpp:1229 
UE4Editor_Engine!AActor::EditorApplyTranslation() actoreditor.cpp:459 
UE4Editor_UnrealEd!UEditorEngine::ApplyDeltaToActor() editorengine.cpp:2348 
UE4Editor_UnrealEd!FLevelEditorViewportClient::ApplyDeltaToActor() leveleditorviewport.cpp:3551 
UE4Editor_UnrealEd!FLevelEditorViewportClient::ApplyDeltaToActors() leveleditorviewport.cpp:3231 
UE4Editor_UnrealEd!FLevelEditorViewportClient::InputWidgetDelta() leveleditorviewport.cpp:2316 
UE4Editor_UnrealEd!FEditorViewportClient::UpdateMouseDelta() editorviewportclient.cpp:1954 
UE4Editor_UnrealEd!FEditorViewportClient::Tick() editorviewportclient.cpp:1077 
UE4Editor_UnrealEd!FLevelEditorViewportClient::Tick() leveleditorviewport.cpp:2016 
UE4Editor_UnrealEd!UEditorEngine::Tick() editorengine.cpp:1476 
UE4Editor_UnrealEd!UUnrealEdEngine::Tick() unrealedengine.cpp:371 
UE4Editor!FEngineLoop::Tick() launchengineloop.cpp:2834 
UE4Editor!GuardedMain() launch.cpp:156 
UE4Editor!GuardedMainWrapper() launchwindows.cpp:126 
UE4Editor!WinMain() launchwindows.cpp:202 
UE4Editor!__scrt_common_main_seh() exe_common.inl:264 
kernel32!<Unknown> 
ntdll!<Unknown> 

Have Comments or More Details?

Head over to the existingAnswerHub thread and let us know what's up.

1
Login to Vote

Fixed
ComponentRendering
Affects Versions4.13.24.144.15
Target Fix4.15
Fix Commit3227211
Main Commit3231696
CreatedNov 14, 2016
ResolvedDec 8, 2016
UpdatedApr 27, 2018