Frequent MetalRHI crashes, WindowServer hangs and editor freezes on macOS 26.5.1 (Mac mini M4, UE 5.7.4)

Summary

Editor stability is severely affected on macOS when using Unreal Engine 5.7.4.

The editor frequently freezes during normal work (Blueprint compilation, moving meshes in the viewport, MetaHuman editing, and sometimes even on startup).

In many cases the editor becomes extremely slow and never recovers, requiring Force Quit.

macOS often reports a WindowServer crash after restarting the computer.

Crash reports consistently point to MetalRHI and GPU rendering code.

Hardware:

  • Mac mini M4
  • 16 GB Unified Memory

Software:

  • macOS 26.5.1
  • Unreal Engine 5.7.4

No engine source modifications.
No custom rendering modifications.
Using official MetaHuman assets.

The same project was previously developed in Unreal Engine 5.6.4 on the same Mac mini M4 running macOS without experiencing these crashes or editor freezes. The stability issues only started after migrating the project to Unreal Engine 5.7.4.

The crashes are not tied to a specific asset or Blueprint. They occur during various editor operations including Blueprint compilation, moving meshes, MetaHuman assembly, and sometimes even during editor startup.

What Type of Bug are you experiencing?

Editor

Steps to Reproduce

  1. Open an Unreal Engine 5.7.4 project on macOS.
  2. Work normally inside the editor.
  3. Compile Blueprint classes multiple times.
  4. Move meshes in the viewport.
  5. Edit or assemble a MetaHuman.
  6. Continue working for several minutes.

The crash is not tied to one specific Blueprint or asset.

The issue appears randomly during normal editor usage.

Expected Result

The editor should remain responsive.

Blueprint compilation, viewport interaction and MetaHuman editing should complete successfully without freezing or crashing.

Observed Result

Several different failures occur:

  • Editor freezes permanently.
  • Editor becomes extremely slow and never recovers.
  • Force Quit is required.
  • Sometimes Unreal crashes immediately.
  • Sometimes macOS kills WindowServer and displays a WindowServer crash report after reboot.

Crash reports frequently contain:

  • UnrealEditor-MetalRHI.dylib
  • UnrealEditor-RHI.dylib
  • FMetalStateCache::IRMakeTextureResident
  • GPUProfiler
  • MetalCommandList
  • RHIEndFrame

One crash also produced:

HairStrands::OpaqueShadowMask Failed with OutOfMemory Error

Another macOS report shows WindowServer being terminated by the watchdog because it stopped responding.

The issue was not present in Unreal Engine 5.6.4 using the same project and the same hardware. After upgrading to Unreal Engine 5.7.4, editor freezes and MetalRHI crashes began occurring during normal editor usage.

Affects Versions

5.7

Platform(s)

Mac

For crash reports, include your callstack

Caught signal

0x8a6e9808 libobjc.A.dylib!objc_msgSend() [UnknownFile])
0x7b7f6178 UnrealEditor-MetalRHI.dylib!FMetalStateCache::IRMakeTextureResident(EMetalShaderStages, MTL::Texture*) [UnknownFile])
0x7b7a20d0 UnrealEditor-MetalRHI.dylib!SetShaderParameters(FMetalStateCache&, FRHIShader*, EShaderFrequency, TArrayView<unsigned char const, int>, TArrayView<FRHIShaderParameter const, int>, TArrayView<FRHIShaderParameterResource const, int>, TArrayView<FRHIShaderParameterResource const, int>) [UnknownFile])
0x7b7a1e9c UnrealEditor-MetalRHI.dylib!FMetalRHICommandContext::RHISetShaderParameters(FRHIGraphicsShader*, TArrayView<unsigned char const, int>, TArrayView<FRHIShaderParameter const, int>, TArrayView<FRHIShaderParameterResource const, int>, TArrayView<FRHIShaderParameterResource const, int>) [UnknownFile])
0x00fba07c UnrealEditor-RHI.dylib!FRHICommandSetShaderParameters::Execute(FRHICommandListBase&) [UnknownFile])
0x020682a4 UnrealEditor-RenderCore.dylib!FRHICommand<FRHICommandSetShaderParameters, FRHICommandSetShaderParametersString1789>::ExecuteAndDestruct(FRHICommandListBase&) [UnknownFile])
0x00fbef20 UnrealEditor-RHI.dylib!FRHICommandListBase::Execute() [UnknownFile])
0x00fc18ec UnrealEditor-RHI.dylib!FRHICommandListExecutor::FTranslateState::Translate(FRHICommandListBase*) [UnknownFile])
0x0100136c UnrealEditor-RHI.dylib!UE::Core::Private::Function::TFunctionRefCaller<FRHICommandListExecutor::FSubmitState::Dispatch(FRHICommandListBase*)::$_0, void>::Call(void*) [UnknownFile])
0x00fbfaa4 UnrealEditor-RHI.dylib!FRHICommandListExecutor::FTaskPipe::Execute(FRHICommandListExecutor::FTaskPipe::FTask*, TRefCountPtr const&) const [UnknownFile])
0x00fe1ab8 UnrealEditor-RHI.dylib!TGraphTask<TFunctionGraphTaskImpl<void (ENamedThreads::Type, TRefCountPtr const&), (ESubsequentsMode::Type)0>>::ExecuteTask() [UnknownFile])
0x042c281c UnrealEditor-Core.dylib!UE::Tasks::Private::FTaskBase::TryExecuteTask() [UnknownFile])
0x042c1b24 UnrealEditor-Core.dylib!FNamedTaskThread::ProcessTasksNamedThread(int, bool) [UnknownFile])
0x042c0b40 UnrealEditor-Core.dylib!FNamedTaskThread::ProcessTasksUntilQuit(int) [UnknownFile])
0x02178b88 UnrealEditor-RenderCore.dylib!FRHIThread::Run() [UnknownFile])
0x04548f30 UnrealEditor-Core.dylib!FRunnableThreadPThread::Run() [UnknownFile])
0x044aea20 UnrealEditor-Core.dylib!FRunnableThreadPThread::_ThreadProc(void*) [UnknownFile])
0x8ab45c58 libsystem_pthread.dylib!_pthread_start() [UnknownFile])
0x8ab40c1c libsystem_pthread.dylib!thread_start() [UnknownFile])