UE 5.8.2 Slate/GraphEditor access violations; DX12 greatly increases crash frequency, DX11 only mitigates

Summary

Unreal Editor 5.8.2 repeatedly crashes inside Slate / GraphEditor during normal editor use.

The crashes occur in several different Slate paths, including GraphEditor layout, spline rendering, widget painting, hit-test data and widget lifetime.

D3D12 greatly increases the crash frequency. With the same machine, project and editor build, switching to D3D11 makes the editor significantly more stable, but does not eliminate the problem completely.

A clean Widget Editor test remained stable for approximately one hour on D3D11. However, GraphEditor crashes still occur occasionally on D3D11, including while the editor is idle.

What Type of Bug are you experiencing?

Editor

Steps to Reproduce

  1. Launch Unreal Engine 5.8.2 on Windows using D3D12.

  2. Open a Blueprint graph containing connected nodes and struct pins.

  3. Edit the graph normally. Operations such as Split Struct Pin / Recombine Struct Pin appear to increase the chance of a crash.

  4. Continue working in the Blueprint Graph Editor, Details panel or Widget Editor.

  5. The editor may crash within minutes in Slate / GraphEditor.

One reproducible example:

  1. Open a Blueprint graph.
  2. Split a struct pin.
  3. Connect or edit the resulting pins.
  4. Use “Recombine Struct Pin”.
  5. The editor may crash during the following Slate redraw in FSplineBuilder / FSlateElementBatcher.

The problem is not fully deterministic. Crashes can also occur while the editor is idle with a Blueprint graph open.

Repeating the same workflow using D3D11 greatly reduces the crash frequency, but does not eliminate it.

Expected Result

Blueprint graphs, Widget Editor and other Slate-based editor UI should remain stable while editing or while idle, regardless of whether the editor is using D3D11 or D3D12.

Observed Result

The editor eventually crashes with EXCEPTION_ACCESS_VIOLATION inside different Slate / GraphEditor code paths.

Observed crash locations include:

  • FSplineBuilder::Finish()
  • SWrapBox::FChildArranger::Arrange()
  • TSet<…FArrangementData>::TryReplaceExisting()
  • SGraphPanel::OnPaint()
  • TSharedFromThis::AsShared()
  • SWidget::Paint()
  • FHittestGrid / TSparseArray
  • PropertyEditor STableRow::OnPaint()

D3D12 makes the problem substantially easier to reproduce. D3D11 is significantly more stable, but occasional Slate / GraphEditor crashes still occur.

Affects Versions

5.8
5.7

Platform(s)

Windows

For crash reports, include your callstack

Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0xffffffffffffffff

UnrealEditor_SlateCore!FSplineBuilder::Finish() [D:\build++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Rendering\ElementBatcher.cpp:1930]
UnrealEditor_SlateCore!FSlateElementBatcher::AddSplineElement() [D:\build++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Rendering\ElementBatcher.cpp:2142]
UnrealEditor_SlateCore!FSlateElementBatcher::AddElementsInternal() [D:\build++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Rendering\ElementBatcher.cpp:451]
UnrealEditor_SlateCore!FSlateElementBatcher::AddElements() [D:\build++UE5\Sync\Engine\Source\Runtime\SlateCore\Private\Rendering\ElementBatcher.cpp:331]
UnrealEditor_SlateRHIRenderer!FSlateRHIRenderer::DrawWindows_Private() [D:\build++UE5\Sync\Engine\Source\Runtime\SlateRHIRenderer\Private\SlateRHIRenderer.cpp:1636]
UnrealEditor_Slate!FSlateApplication::PrivateDrawWindows() [D:\build++UE5\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:1530]
UnrealEditor_Slate!FSlateApplication::DrawWindows() [D:\build++UE5\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:1211]
UnrealEditor_Slate!FSlateApplication::TickAndDrawWidgets() [D:\build++UE5\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:1820]
UnrealEditor_Slate!FSlateApplication::Tick() [D:\build++UE5\Sync\Engine\Source\Runtime\Slate\Private\Framework\Application\SlateApplication.cpp:1666]
UnrealEditor!FEngineLoop::Tick() [D:\build++UE5\Sync\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:5992]
UnrealEditor!GuardedMain() [D:\build++UE5\Sync\Engine\Source\Runtime\Launch\Private\Launch.cpp:190]
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:338]
UnrealEditor!__scrt_common_main_seh() [D:\a_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]
kernel32
ntdll

Additional Notes

Hardware / OS:

  • Windows 11 25H2
  • Intel Core i9-13900HX
  • NVIDIA RTX 4090 Laptop GPU
  • dGPU-only mode

The issue has survived extensive troubleshooting:

  • Completely clean Windows installation / formatted system partition
  • Clean Windows user profile
  • Windows Clean Boot with third-party services disabled
  • NVIDIA driver removed using DDU
  • Multiple NVIDIA driver versions tested
  • CPU and GPU overclocking disabled
  • OCCT Memory: 1 hour, no errors
  • OCCT CPU + RAM: 1 hour, no errors
  • OCCT VRAM: 1 hour, no errors
  • OCCT 3D Adaptive: 1 hour, no errors
  • Games and synthetic GPU workloads are stable

RHI comparison:

D3D12:

  • Frequent Slate / editor crashes, sometimes within minutes.
  • Widget Editor, Details and Blueprint Graph Editor have all been affected.

D3D11:

  • Significantly more stable.
  • A clean Widget Editor test remained stable for approximately one hour.
  • Does not eliminate the issue completely.

A separate D3D11 crash occurred while the Blueprint editor was idle:

EXCEPTION_ACCESS_VIOLATION reading address 0x0000095501000001

UnrealEditor_Slate!
TSet<…SWrapBox::FChildArranger::FArrangementData>::TryReplaceExisting()

UnrealEditor_Slate!
SWrapBox::FChildArranger::Arrange()

UnrealEditor_Slate!
SWrapBox::OnArrangeChildren()

UnrealEditor_SlateCore!
SWidget::FindChildGeometries()

UnrealEditor_GraphEditor!
SGraphPanel::OnPaint()

Other crashes observed during this investigation included SWidget::AsShared(), PropertyEditor::STableRow::OnPaint(), FHittestGrid / TSparseArray failures and an FChildren ownership invariant failure.

Similar broad Slate instability was also observed previously in UE 5.7.4. A Slate crash was also observed in UE4, although that has not been investigated deeply enough to claim the exact same root cause.

I can provide additional crash reports, logs and minidumps if needed.