Context:
The Mutable plugin has a modifier node called Clip Mesh With Mesh that allows Static Mesh modifiers to be assigned as the clip mesh. Under certain circumstances, an assert can be triggered inside the UCustomizableObjectNodeStaticMesh::GetPinSection() function.
Details:
In cases when changing the mesh assigned to the Static Mesh node which is linked to the Clip Mesh With Mesh modifier, the Static Mesh node can become invalid if the previously assigned static mesh and the newly assigned static mesh have different materials. In Unreal versions 5.5 and 5.6, clicking on the Clip Mesh With Mesh node (as if to drag it around) causes a check(false) to be hit inside UCustomizableObjectNodeStaticMesh::GetPinSection(). As an aside detail, the logic inside this GetPinSection() function can also cause the assert to trigger if no static mesh is assigned to the Static Mesh node.
Additionally, the bug of the Static Mesh node becoming invalid under the current reproduction steps can also be repeated in Unreal 5.4, however there is no assert triggered. The node simply becomes invalid.
1) Open Unreal Editor 5.5 and create a new project.
2) Go to Edit -> Plugins and enable Mutable (Beta)
3) Create a new Mutable > Customizable Object
4) On the graph, right-click and create a new Clip Mesh With Mesh Modifier
5) From the Clip Mesh pin, drag off and insert a Static Mesh node.
6) Assign any static mesh to the Static Mesh node.
7) Change the assigned static mesh on the same Static Mesh node to a another static mesh with a different material type.
8) Notice, the original mesh material will turn red and become invalid, and a second material will display on the node.
9) Click on the Clip Mesh With Mesh Modifier's title bar.
10) Notice an assert is triggered inside UCustomizableObjectNodeStaticMesh::GetPinSection()
UnrealEditor_CustomizableObjectEditor!UCustomizableObjectNodeStaticMesh::GetPinSection() [D:\build\++UE5\Sync\Engine\Plugins\Mutable\Source\CustomizableObjectEditor\Private\MuCOE\Nodes\CustomizableObjectNodeStaticMesh.cpp:435]
UnrealEditor_CustomizableObjectEditor!FCustomizableObjectEditor::ShowGizmoClipMesh() [D:\build\++UE5\Sync\Engine\Plugins\Mutable\Source\CustomizableObjectEditor\Private\MuCOE\CustomizableObjectEditor.cpp:1048]
UnrealEditor_CustomizableObjectEditor!FCustomizableObjectEditor::OnSelectedGraphNodesChanged() [D:\build\++UE5\Sync\Engine\Plugins\Mutable\Source\CustomizableObjectEditor\Private\MuCOE\CustomizableObjectEditor.cpp:1717]
UnrealEditor_CustomizableObjectEditor!V::TBaseSPMethodDelegateInstance::ExecuteIfSafe() [D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:299]
UnrealEditor_GraphEditor!FGraphSelectionManager::SelectSingleNode() [D:\build\++UE5\Sync\Engine\Source\Editor\GraphEditor\Private\SNodePanel.cpp:135]
UnrealEditor_GraphEditor!SNodePanel::OnMouseButtonUp() [D:\build\++UE5\Sync\Engine\Source\Editor\GraphEditor\Private\SNodePanel.cpp:1006]
UnrealEditor_GraphEditor!SGraphPanel::OnMouseButtonUp() [D:\build\++UE5\Sync\Engine\Source\Editor\GraphEditor\Private\SGraphPanel.cpp:1039]
UnrealEditor_Slate!`FSlateApplication::RoutePointerUpEvent'::`8'::<lambda_2>::operator()() [D:\build\++UE5\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:5346]
UnrealEditor_Slate!FEventRouter::Route<FReply,FEventRouter::FToLeafmostPolicy,FPointerEvent,`FSlateApplication::RoutePointerUpEvent'::`8'::<lambda_2> >() [D:\build\++UE5\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:456]
UnrealEditor_Slate!FSlateApplication::RoutePointerUpEvent() [D:\build\++UE5\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:5332]
UnrealEditor_Slate!FSlateApplication::ProcessMouseButtonUpEvent() [D:\build\++UE5\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:5917]
UnrealEditor_Slate!FSlateApplication::OnMouseUp() [D:\build\++UE5\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:5873]
UnrealEditor_ApplicationCore!FWindowsApplication::ProcessDeferredMessage() [D:\build\++UE5\Sync\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:2271]
UnrealEditor_ApplicationCore!FWindowsApplication::DeferMessage() [D:\build\++UE5\Sync\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:2783]
UnrealEditor_ApplicationCore!FWindowsApplication::ProcessMessage() [D:\build\++UE5\Sync\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:1944]
UnrealEditor_ApplicationCore!FWindowsApplication::AppWndProc() [D:\build\++UE5\Sync\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsApplication.cpp:945]
user32
user32
UnrealEditor_ApplicationCore!FWindowsPlatformApplicationMisc::PumpMessages() [D:\build\++UE5\Sync\Engine\Source\Runtime\ApplicationCore\Private\Windows\WindowsPlatformApplicationMisc.cpp:145]
UnrealEditor!FEngineLoop::Tick() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:5806]
UnrealEditor!GuardedMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Launch.cpp:188]
UnrealEditor!GuardedMainWrapper() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:123]
UnrealEditor!LaunchWindowsStartup() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:277]
UnrealEditor!WinMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:317]
UnrealEditor!__scrt_common_main_seh() [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-302186 in the post.
0 |
Component | UE - Anim - Mutable |
---|---|
Affects Versions | 5.5, 5.6 |
Created | Jul 4, 2025 |
---|---|
Updated | Jul 16, 2025 |