UE 5.8 - Editor crashes when opening metahuman migrated from 5.7

Summary

Editor crashes when opening an assembled metahuman, created using metahuman creator in ue 5.7, after migration.

Frequently crashes when opening the non-assemble version after migration from ue 5.7.

What Type of Bug are you experiencing?

Other

Steps to Reproduce

(A) NON-ASSEMBLED METAHUMAN

1 - Open UE 5.7.
2 - Create a new metahuman character.
3 - Import and conform metahuman character with custom body and head (human and non-stylised) purchased from FAB.com.
4 - Overwrite with custom texture, including underwear mask.
5 - Add hair, eyebrows, makeup, etc.
6 - Save and migrate to UE 5.8.
7 - Open UE 5.8.
8 - Open the metahuman file.

(B) ASSEMBLED METAHUMAN

1 - Follow Step 1-5
2 - Create rig and assemble.
3 - Migrate to UE 5.8.
4 - Open UE 5.8.
5 - Drag and drop the metahuman blueprint to the viewport.

Expected Result

(A) NON-ASSEMBLED METAHUMAN

  • Metahuman creator open and function without crashing.

(B) ASSEMBLED METAHUMAN

  • Editor function without crashing.

Observed Result

(A) NON-ASSEMBLED METAHUMAN

  • Metahuman creator crashed upon opening.

(B) ASSEMBLED METAHUMAN

  • Editor crashed upon placing the metahuman blueprint.

Affects Versions

5.8

Platform(s)

Mac

For crash reports, include your callstack

Fatal error: [File:./Runtime/Apple/MetalRHI/Private/Shaders/Types/Templates/MetalBaseShader.h] [Line: 508]
*********** Error
Hash: 0000000000000000, Name: MaterialAHS_000bcf10_28540ec1

0x578bf820 libUnrealEditor-MetalRHI.dylib!TMetalBaseShader<FRHIRayHitGroupShader, 8>::GetCompiledFunction(bool, int, bool)::‘lambda’(MTL::Function*, NS::Error*)::operator()(MTL::Function*, NS::Error*) const [UnknownFile])
0x578bd224 libUnrealEditor-MetalRHI.dylib!invocation function for block in MTL::Library::newFunction(MTL::FunctionDescriptor const*, std::__1::function<void (MTL::Function*, NS::Error*)> const&) [UnknownFile])
0x578bf260 libUnrealEditor-MetalRHI.dylib!TMetalBaseShader<FRHIRayHitGroupShader, 8>::GetCompiledFunction(bool, int, bool) [UnknownFile])
0x579520e8 libUnrealEditor-MetalRHI.dylib!TMetalBaseShader<FRHIRayHitGroupShader, 8>::Init(FRHICreateShaderDesc const&, FMetalCodeHeader&, NS::SharedPtrMTL::Library, bool, bool) [UnknownFile])
0x57951660 libUnrealEditor-MetalRHI.dylib!FMetalBaseRayShader<FRHIRayHitGroupShader, 8>::FMetalBaseRayShader(FMetalDevice&, FRHICreateShaderDesc const&, NS::SharedPtrMTL::Library, IRShaderStage, FString&, bool, bool) [UnknownFile])
0x5793e19c libUnrealEditor-MetalRHI.dylib!FMetalRayShader::FMetalRayShader(FMetalDevice&, FRHICreateShaderDesc const&, EShaderFrequency, NS::SharedPtrMTL::Library) [UnknownFile])
0x57897630 libUnrealEditor-MetalRHI.dylib!FMetalDynamicRHI::RHICreateRayTracingShader(FRHICreateShaderDesc const&, EShaderFrequency) [UnknownFile])
0x0420c714 libUnrealEditor-RenderCore.dylib!FShaderMapResource_InlineCode::CreateRHIShaderOrCrash(int, bool) [UnknownFile])
0x0420b518 libUnrealEditor-RenderCore.dylib!FShaderMapResource::CreateShaderOrCrash(int, bool) [UnknownFile])
0x254f7ff8 libUnrealEditor-Renderer.dylib!FRayTracingMeshCommand::SetShader(TShaderRefBase<FShader, FShaderMapPointerTable> const&) [UnknownFile])
0x254f46a4 libUnrealEditor-Renderer.dylib!void FRayTracingMeshProcessor::BuildRayTracingMeshCommands<FMaterialCHS, TBasePassShaderElementData>(FMeshBatch const&, unsigned long long, FPrimitiveSceneProxy const*, FMaterialRenderProxy const&, FMaterial const&, TShaderRefBase<FMaterialCHS, FShaderMapPointerTable> const&, TBasePassShaderElementData const&) [UnknownFile])
0x254f4130 libUnrealEditor-Renderer.dylib!FRayTracingMeshProcessor::Process(FMeshBatch const&, unsigned long long, FPrimitiveSceneProxy const*, FMaterialRenderProxy const&, FMaterial const&, FUniformLightMapPolicy const&) [UnknownFile])
0x254f53d0 libUnrealEditor-Renderer.dylib!FRayTracingMeshProcessor::TryAddMeshBatch(FMeshBatch const&, unsigned long long, FPrimitiveSceneProxy const*, int, FMaterialRenderProxy const&, FMaterial const&) [UnknownFile])
0x254f510c libUnrealEditor-Renderer.dylib!FRayTracingMeshProcessor::AddMeshBatch(FMeshBatch const&, unsigned long long, FPrimitiveSceneProxy const*) [UnknownFile])
0x254b8be0 libUnrealEditor-Renderer.dylib!UE::Tasks::Private::TExecutableTaskBase<RayTracing::DispatchRayTracingMeshBatchTask(TConcurrentLinearBulkObjectAllocator&, FScene&, FViewInfo&, RayTracing::FRayTracingMeshBatchTaskPage*, unsigned int)::$_0, void, void>::ExecuteTask() [UnknownFile])
0x2467b7b0 libUnrealEditor-Renderer.dylib!UE::Tasks::Private::FTaskBase::TryExecuteTask() [UnknownFile])
0x24694680 libUnrealEditor-Renderer.dylib!LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask* (bool), 112u>::TTaskDelegateImpl<void LowLevelTasks::FTask::Init<UE::Tasks::Private::FTaskBase::Init(char16_t const*, LowLevelTasks::ETaskPriority, UE::Tasks::EExtendedTaskPriority, UE::Tasks::ETaskFlags)::‘lambda’()>(char16_t const*, LowLevelTasks::ETaskPriority, UE::Tasks::Private::FTaskBase::Init(char16_t const*, LowLevelTasks::ETaskPriority, UE::Tasks::EExtendedTaskPriority, UE::Tasks::ETaskFlags)::‘lambda’()&&, LowLevelTasks::ETaskFlags)::‘lambda’(bool), false>::CallAndMove(LowLevelTasks::TTaskDelegate<LowLevelTasks::FTask* (bool), 112u>&, void*, unsigned int, bool) [UnknownFile])
0x06687474 libUnrealEditor-Core.dylib!LowLevelTasks::FTask::ExecuteTask() [UnknownFile])
0x0666a854 libUnrealEditor-Core.dylib!LowLevelTasks::FScheduler::ExecuteTask(LowLevelTasks::FTask*) [UnknownFile])
0x0666c24c libUnrealEditor-Core.dylib!LowLevelTasks::FScheduler::WorkerLoop(LowLevelTasks::Private::FWaitEvent*, LowLevelTasks::Private::TLocalQueueRegistry<1024u, 1024u>::TLocalQueue*, unsigned int, bool) [UnknownFile])
0x0666cb90 libUnrealEditor-Core.dylib!LowLevelTasks::FScheduler::WorkerMain(LowLevelTasks::Private::FWaitEvent*, LowLevelTasks::Private::TLocalQueueRegistry<1024u, 1024u>::TLocalQueue*, unsigned int, bool) [UnknownFile])
0x06955e88 libUnrealEditor-Core.dylib!FThreadImpl::Run() [UnknownFile])
0x069237b4 libUnrealEditor-Core.dylib!FRunnableThreadPThread::Run() [UnknownFile])
0x06872e44 libUnrealEditor-Core.dylib!FRunnableThreadPThread::_ThreadProc(void*) [UnknownFile])
0x89449c58 libsystem_pthread.dylib!_pthread_start() [UnknownFile])
0x89444c1c libsystem_pthread.dylib!thread_start() [UnknownFile])

Hey @JK_Peng

This one is an issue specifically on Mac when using Ray Tracing.

If you disable Ray Tracing and try again you should not experience this crash. We are working on a fix for this.

Cheers
James