Description

The important step here is to unlink the middle layer after first relinking everything.

Steps to Reproduce
  1. Create three material layers with a variety of parameters (color, roughness, metallic)
  2. Create a couple of material layer blends, with a variety of parameters (direction, intensity, etc.)
  3. Create a simple layered material, and create an instance of that. Add your layers and blends.
  4. In the Layer parameters view, expand the blend and layer parameters and make modifications.
  5. Delete the middle layer.
  6. Relink the layers.
  7. Unlink the middle layer.
  8. Delete the middle layer again.
  9. Observe the crash.

Alternately, see attached project for repro. Open M_MyLayeredMaterial_inst and delete "Layer 1", then relink the layers, unlink Layer 1, then delete Layer 1 again to observe the crash.

Callstack
UE4Editor_Core!AssertFailedImplV() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Core\Private\Misc\AssertionMacros.cpp:102]
UE4Editor_Core!FDebug::CheckVerifyFailedImpl() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Core\Private\Misc\AssertionMacros.cpp:458]
UE4Editor_Engine!DispatchCheckVerify<void,<lambda_ff57ed05420f90fd4f0e60c56e6b73eb> >() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Core\Public\Misc\AssertionMacros.h:165]
UE4Editor_Engine!UMaterialInstance::UpdateParameters() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Engine\Private\Materials\MaterialInstance.cpp:511]
UE4Editor_Engine!UMaterialInstance::UpdateParameterNames() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Engine\Private\Materials\MaterialInstance.cpp:4059]
UE4Editor_UnrealEd!UMaterialEditorInstanceConstant::RegenerateArrays() [D:\Build\++UE4\Sync\Engine\Source\Editor\UnrealEd\Private\PreviewMaterial.cpp:975]
UE4Editor_UnrealEd!UMaterialEditorInstanceConstant::PostEditChangeProperty() [D:\Build\++UE4\Sync\Engine\Source\Editor\UnrealEd\Private\PreviewMaterial.cpp:877]
UE4Editor_CoreUObject!UObject::PostEditChangeChainProperty() [D:\Build\++UE4\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\Obj.cpp:454]
UE4Editor_PropertyEditor!FPropertyNode::NotifyPostChange() [D:\Build\++UE4\Sync\Engine\Source\Editor\PropertyEditor\Private\PropertyNode.cpp:2342]
UE4Editor_PropertyEditor!FPropertyHandleBase::NotifyPostChange() [D:\Build\++UE4\Sync\Engine\Source\Editor\PropertyEditor\Private\PropertyHandleImpl.cpp:3015]
UE4Editor_MaterialEditor!SMaterialLayersFunctionsInstanceTree::RemoveLayer() [D:\Build\++UE4\Sync\Engine\Source\Editor\MaterialEditor\Private\SMaterialLayersFunctionsTree.cpp:1213]
UE4Editor_MaterialEditor!TBaseSPMethodDelegateInstance<0,SMaterialLayersFunctionsInstanceTree,0,void __cdecl(void),FDefaultDelegateUserPolicy,int>::ExecuteIfSafe() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:307]
UE4Editor_PropertyEditor!PropertyCustomizationHelpers::SPropertyEditorButton::OnClick() [D:\Build\++UE4\Sync\Engine\Source\Editor\PropertyEditor\Private\PropertyCustomizationHelpers.cpp:86]
UE4Editor_PropertyEditor!TBaseSPMethodDelegateInstance<0,PropertyCustomizationHelpers::SPropertyEditorButton,0,FReply __cdecl(void),FDefaultDelegateUserPolicy>::Execute() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:290]
UE4Editor_Slate!SButton::ExecuteOnClick() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Slate\Private\Widgets\Input\SButton.cpp:385]
UE4Editor_Slate!SButton::OnMouseButtonUp() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Slate\Private\Widgets\Input\SButton.cpp:304]
UE4Editor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,<lambda_cc5aea9e7377b04ce85c30c65ec3889b> >() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:378]
UE4Editor_Slate!FSlateApplication::RoutePointerUpEvent() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:4815]
UE4Editor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:5356]
UE4Editor_Slate!FSlateApplication::OnMouseUp() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:5321]
UE4Editor_ApplicationCore!FWindowsApplication::ProcessDeferredMessage() [D:\Build\++UE4\Sync\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:2174]
UE4Editor_ApplicationCore!FWindowsApplication::DeferMessage() [D:\Build\++UE4\Sync\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:2638]
UE4Editor_ApplicationCore!FWindowsApplication::ProcessMessage() [D:\Build\++UE4\Sync\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:1042]
UE4Editor_ApplicationCore!FWindowsApplication::AppWndProc() [D:\Build\++UE4\Sync\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:874]
user32
user32
UE4Editor_ApplicationCore!FWindowsPlatformApplicationMisc::PumpMessages() [D:\Build\++UE4\Sync\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsPlatformApplicationMisc.cpp:130]
UE4Editor!FEngineLoop::Tick() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:4746]
UE4Editor!GuardedMain() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Launch\Private\Launch.cpp:169]
UE4Editor!GuardedMainWrapper() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:137]
UE4Editor!WinMain() [D:\Build\++UE4\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:268]
UE4Editor!__scrt_common_main_seh() [d:\agent\_work\5\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll

Have Comments or More Details?

There's no existing public thread on this issue, so head over to AnswerHub just mention UE-108012 in the post.

1
Login to Vote

Fixed
ComponentRendering
Affects Versions4.26
Target Fix4.27
Fix Commit16120025
Main Commit16120030
Release Commit16120025
CreatedFeb 5, 2021
ResolvedApr 26, 2021
UpdatedApr 27, 2021