Have the same issue, but only in certain levels in our game, and happens every time regardless of restart.
Here is the most recent crash (happy to give the full crash logs/dump if interested/requested)(also for the record I do have debug symbols installed but this is all I get):
Fatal error: [File:/Users/build/Build/++UE4/Sync/Engine/Source/Runtime/Apple/MetalRHI/Private/MetalCommandList.cpp] [Line: 176] Command Buffer AmbientOcclusionPS 517x329 SetupAsInput=1 Upsample=0 ShaderQuality=2 Failed with Internal Error! Error Domain: MTLCommandBufferErrorDomain Code: 1 Description Discarded (victim of GPU error/recovery) (00000005:kIOGPUCommandBufferCallbackErrorInnocentVictim) Unknown Unknown
FGenericPlatformMisc::RaiseException(unsigned int) Address = 0x10a809757 (filename not found) [in UE4Editor-Core.dylib]
FMacErrorOutputDevice::Serialize(char16_t const*, ELogVerbosity::Type, FName const&) Address = 0x10a99d673 (filename not found) [in UE4Editor-Core.dylib]
FOutputDevice::LogfImpl(char16_t const*, ...) Address = 0x10aaab799 (filename not found) [in UE4Editor-Core.dylib]
auto ReportMetalCommandBufferFailure(mtlpp::CommandBuffer const&, char16_t const*, bool)::$_19::operator()<FLogCategoryLogMetal, char16_t [87], char16_t const*, char16_t const*, char16_t const*, int, char16_t const*, char16_t const*, char16_t const*>(FLogCategoryLogMetal const&, char16_t const (&) [87], char16_t const* const&, char16_t const* const&, char16_t const* const&, int const&, char16_t const* const&, char16_t const* const&, char16_t const* const&) const Address = 0x1701a799c (filename not found) [in UE4Editor-MetalRHI.dylib]
ReportMetalCommandBufferFailure(mtlpp::CommandBuffer const&, char16_t const*, bool) Address = 0x170173df6 (filename not found) [in UE4Editor-MetalRHI.dylib]
MetalCommandBufferFailureInternal(mtlpp::CommandBuffer const&) Address = 0x1701a701c (filename not found) [in UE4Editor-MetalRHI.dylib]
HandleMetalCommandBufferError(mtlpp::CommandBuffer const&) Address = 0x1701726af (filename not found) [in UE4Editor-MetalRHI.dylib]
FMetalCommandList::HandleMetalCommandBufferFailure(mtlpp::CommandBuffer const&) Address = 0x170172473 (filename not found) [in UE4Editor-MetalRHI.dylib]
invocation function for block in FMetalCommandList::Commit(mtlpp::CommandBuffer&, TArray<ns::Object<void (mtlpp::CommandBuffer const&) block_pointer, (ns::CallingConvention)1>, TSizedDefaultAllocator<32> >, bool, bool) Address = 0x17017465e (filename not found) [in UE4Editor-MetalRHI.dylib]
invocation function for block in mtlpp::CommandBuffer::AddCompletedHandler(void (mtlpp::CommandBuffer const&) block_pointer) Address = 0x170130134 (filename not found) [in UE4Editor-MetalRHI.dylib]
Unknown() Address = 0x7ff80eb0f7a2 (filename not found) [in Metal]
Unknown() Address = 0x7ff80eb0fcd8 (filename not found) [in Metal]
Unknown() Address = 0x7ff90696fb44 (filename not found) [in IOGPU]
Unknown() Address = 0x7ff80eb0f951 (filename not found) [in Metal]
Unknown() Address = 0x7ff906972e8c (filename not found) [in IOGPU]
Unknown() Address = 0x7ff906976e65 (filename not found) [in IOGPU]
Unknown() Address = 0x7ff805b4a3b1 (filename not found) [in libdispatch.dylib]
Unknown() Address = 0x7ff805b63041 (filename not found) [in libdispatch.dylib]
Unknown() Address = 0x7ff805b501cd (filename not found) [in libdispatch.dylib]
Unknown() Address = 0x7ff805b63b77 (filename not found) [in libdispatch.dylib]
Unknown() Address = 0x7ff805b501cd (filename not found) [in libdispatch.dylib]
Unknown() Address = 0x7ff805b50e30 (filename not found) [in libdispatch.dylib]
Unknown() Address = 0x7ff805b501cd (filename not found) [in libdispatch.dylib]
Unknown() Address = 0x7ff805b50dfd (filename not found) [in libdispatch.dylib]
Unknown() Address = 0x7ff805b5aeee (filename not found) [in libdispatch.dylib]
_pthread_wqthread Address = 0x7ff805cfdfd0 (filename not found) [in libsystem_pthread.dylib]
start_wqthread Address = 0x7ff805cfcf57 (filename not found) [in libsystem_pthread.dylib]