Frequent but Intermittent crashes on IOS devices, 5.5.4

Log from device

Working on getting proper stacktrace, but does not crash when plugged into xcode : (

EDIT : Seems to be PSO related

PSOPrecompilePool #0 (36)

`Mar 31 10:59:06 Helsinki-iPad-8 mygame(Metal)[1024] : Compiler failed to build request
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:214][ 0]LogMetal: Error: Failed to generate a pipeline state object: Error Domain=AGXMetalA12 Code=3 “Vertex attribute 1 is not defined in the vertex descriptor.” UserInfo={NSLocalizedDescription=Vertex attribute 1 is not defined in the vertex descriptor.}
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:215][ 0]LogMetal: Error: Failed to generate a pipeline state object: Error Domain=AGXMetalA12 Code=3 “Vertex attribute 1 is not defined in the vertex descriptor.” UserInfo={NSLocalizedDescription=Vertex attribute 1 is not defined in the vertex descriptor.}
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:215][ 0]LogMetal: Error: Vertex shader: Hash: C87407B8D66CA0C226C15BA7A5DDA67B982AF9A4, Name: Main_000051a2_bc96e682
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:215][ 0]LogMetal: Error: Vertex shader: Hash: C87407B8D66CA0C226C15BA7A5DDA67B982AF9A4, Name: Main_000051a2_bc96e682
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:215][ 0]LogMetal: Error: Pixel shader: Hash: C65E33A460785EBB4ACEC09A35F5E8B6A08494B3, Name: Main_00000f2c_d30f1a2b
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:215][ 0]LogMetal: Error: Pixel shader: Hash: 7712C53ED0576C4AF3C9FCBAF4F8D155BCCE0DFF, Name: Main_00000acf_dd585923
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:215][ 0]LogMetal: Error: Descriptor: <MTLRenderPipelineDescriptorInternal: 0x1102edb00>
label = Main_000051a2_bc96e682+Main_00000acf_dd585923
Alpha to Coverage = 0
Alpha to One = 0
Rasterization Enabled = 1
Sample Coverage = 1
Sample Mask = 0xffffffffffffffff
Raster Sample Count = 1
Input Primitive Topology = Unspecified
Depth Attachment Format = MTLPixelFormatDepth32Float_Stencil8
Stencil Attachment Format = MTLPixelFormatDepth32Float_Stencil8
tessellationPartitionMode = MTLTessellationPartitionModePow2
maxTessellationFactor = 16
tessellationFactorScaleEnabled = 0
tessellationFactorFormat = MTLTessellationFactorFormatHalf
tessellationControlPointIndexType = MTLTessellationControlPointIndexTypeNone
tessellationFactorStepFunction = MTLTessellationFactorStepFunctionConstant
tessellationOutputWindingOrder = MTLWindingClockwise
Vertex Function = <_MTLFunctionInternal: 0x1103b6f40>
na<\M-b\M^@\M-&>

Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:230][ 0]LogMetal: Error: Failed to generate a pipeline state object: Error Domain=AGXMetalA12 Code=3 “Vertex attribute 1 is not defined in the vertex descriptor.” UserInfo={NSLocalizedDescription=Vertex attribute 1 is not defined in the vertex descriptor.}
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:230][ 0]LogRHI: Error: Failed to create graphics pipeline, hashes: Vertex: AFD02BB90176577DBBC5020C8E1006C4FCF3AAC5, Pixel: E116234464E23B9CC3658140DE32190B7FC8E823, Pipeline: 8182847825D10EDE53F3958C4C62074077C18EC3.
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:230][ 0]LogRHI: Error: Failed to create graphics pipeline, hashes: Vertex: AFD02BB90176577DBBC5020C8E1006C4FCF3AAC5, Pixel: A49D18AE77F2EAFC12171C44451C827502CAACB1, Pipeline: DE4EAA4CF64E5AB3AADBD005BCB71047D7F36738.
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:230][ 0]LogRHI: Error: Failed to create graphics pipeline, hashes: Vertex: D93F838DC6702949CFFD6233F8E3470913657AD6, Pixel: 8AF7B0C5BB713A8ADFDACF81A7B1358AC461D60A, Pipeline: 6831360D88409ECBF1E8DA7E39173CBF705229FD.
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:230][ 0]LogMetal: Error: Vertex shader: Hash: D93F838DC6702949CFFD6233F8E3470913657AD6, Name: Main_0000219e_94a648e1
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:230][ 0]LogRHI: Error: Vertex: Main_00005108_78dcc486
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:230][ 0]LogRHI: Error: Pixel: Main_00002c85_10053d79
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:230][ 0]LogRHI: Error: Render Targets: (8)
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:230][ 0]LogRHI: Error: 0x1a
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:230][ 0]LogRHI: Error: 0x15
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:230][ 0]LogRHI: Error: 0x0
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:230][ 0]LogRHI: Error: 0x0
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:230][ 0]LogRHI: Error: 0x0
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:230][ 0]LogRHI: Error: 0x0
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:230][ 0]LogRHI: Error: 0x0
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:230][ 0]LogRHI: Error: 0x0
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:230][ 0]LogRHI: Error: Depth Stencil Format:
Mar 31 10:59:06 Helsinki-iPad-8 mygame[1024] : [UE] [2025.03.31-07.59.06:231][ 0]LogRHI: Error: 0xb`

Steps to Reproduce
Observations:

  • Crash is intermittent. Sometimes on entering the game, sometimes not
  • A near-blank test project does _not_ crash

Things we have tried so far:

  • Using Metal v3.0

Things we have yet to try:

  • Using deferred rendering ( trying that now )

Crash Log below

Hi Tuomas,

Thank you for the report and log. Can you confirm that you are on 5.5.3 or higher? We are tracking the issue and believe this may have been introduced after 5.5.2.

Best regards.

Correct, 5.5.4

Can also confirm r.PSOPrecaching=0 restores stability

Hi Stephane!

I stumbled on this thread since we had a similar issue on PC with a gpu crash dump describing an MMU Fault Error. It’s from a shipping build so we can’t extract much information of it.

The game is running on 5.5.4 as well. Is there a bug tracking link for this issue or some code we can downgrade to before this bug got introduced?

Thanks!

Hi Peter and Tuomas.

We were able to confirm the issue in the 5.5 release, however, it appears to be resolved in the main development branch. We will try to track down a fix CL and get back to you.

Best regards.

Hi Tuomas,

We believe the following changelists should provide resolution to this issue:

https://github.com/EpicGames/UnrealEngine/commit/c2f5dcbeb2936ff7fd2b9af8e2f3f6322505ce80

https://github.com/EpicGames/UnrealEngine/commit/330de5ad0c5f3712a2141905b1aa1e6a88f93951

Best regards.

Super, thank you

I am still experiencing something very similar on 5.6.1

I’ve attached a full log but here’s a snippet:

[2026.02.03-04.02.57:309][  0]LogMetal: Error: Failed to generate a render pipeline state object:

Vertex attribute 1 is not defined in the vertex descriptor.

[2026.02.03-04.02.57:309][  0]LogRHI: Error: Failed to create graphics pipeline, hashes: Vertex: 82B6B4CA76DE06B9E77C199D9431D6C082299114, Pixel: D421165104A3D35B4CD6C4614BE2245FCA658178, Pipeline: 1B1D0FCF793BE140B614E6AFF6026C3A7EFF1998.
[2026.02.03-04.02.57:309][  0]LogRHI: Error: Vertex: Main_00003f26_af3b76ad
[2026.02.03-04.02.57:309][  0]LogRHI: Error: Pixel: Main_00003484_7de73ef8
[2026.02.03-04.02.57:309][  0]LogRHI: Error: Render Targets: (8)
[2026.02.03-04.02.57:309][  0]LogRHI: Error: 0x1a
[2026.02.03-04.02.57:309][  0]LogRHI: Error: 0x15
[2026.02.03-04.02.57:309][  0]LogRHI: Error: 0x0
[2026.02.03-04.02.57:309][  0]LogRHI: Error: 0x0
[2026.02.03-04.02.57:309][  0]LogRHI: Error: 0x0
[2026.02.03-04.02.57:309][  0]LogRHI: Error: 0x0
[2026.02.03-04.02.57:309][  0]LogRHI: Error: 0x0
[2026.02.03-04.02.57:309][  0]LogRHI: Error: 0x0
[2026.02.03-04.02.57:309][  0]LogRHI: Error: Depth Stencil Format:
[2026.02.03-04.02.57:309][  0]LogRHI: Error: 0xb
[2026.02.03-04.02.57:309][  0]LogMetal: Error: Failed to generate a pipeline state object: Error Domain=AGXMetalG17P Code=3 “Vertex attribute 1 is not defined in the vertex descriptor.” UserInfo={NSLocalizedDescription=Vertex attribute 1 is not defined in the vertex descriptor.}
[2026.02.03-04.02.57:309][  0]LogMetal: Error: Vertex shader: Hash: 82B6B4CA76DE06B9E77C199D9431D6C082299114, Name: Main_00003f26_af3b76ad
[2026.02.03-04.02.57:309][  0]LogMetal: Error: Pixel shader: Hash: 902BCD8CD82A9B77D02F1F1A362D7ED20F7143BA, Name: Main_00004ff4_c84a3d9b
[2026.02.03-04.02.57:309][  0]LogMetal: Error: Descriptor: <MTLRenderPipelineDescriptorInternal: 0x14438f000>
label = Main_00003f26_af3b76ad+Main_00004ff4_c84a3d9b
name = 
Alpha to Coverage = 0
Alpha to One = 0
Rasterization Enabled = 1
Sample Coverage = 1
Sample Mask = 0xffffffffffffffff
Raster Sample Count = 4
Input Primitive Topology = Unspecified
Depth Attachment Format = MTLPixelFormatDepth32Float_Stencil8
Stencil Attachment Format = MTLPixelFormatDepth32Float_Stencil8
tessellationPartitionMode = MTLTessellationPartitionModePow2
maxTessellationFactor = 16
tessellationFactorScaleEnabled = 0
tessellationFactorFormat = MTLTessellationFactorFormatHalf
tessellationControlPointIndexType = MTLTessellationControlPointIndexTypeNone
tessellationFactorStepFunction = MTLTessellationFactorStepFunctionConstant
tessellationOutputWindingOrder = MTLWindingClockwise
Vertex Function = <_MTLFunctionInternal: 0x144c401c0>
name = Main_00003f26_af3b76ad
device = <AGXG17PDevice: 0x144388000>
name = Apple A18 GPU
functionType = MTLFunctionTypeVertex
attributes: <MTLVertexAttributeInternal: 0x144c971e0>
name = in_var_ATTRIBUTE0
attributeIndex = 0
attributeType = MTLDataTypeFloat4
active = 1
isPatchData = 0
isPatchControlPointData = 0 <MTLVertexAttributeInternal: 0x144c97300>
name = in_var_ATTRIBUTE1
attributeIndex = 1
attributeType = MTLDataTypeFloat3
active = 1
isPatchData = 0
isPatchControlPointData = 0 <MTLVertexAttributeInternal: 0x144c972a0>
name = in_var_ATTRIBUTE2
attributeIndex = 2
attributeType = MTLDataTypeFloat4
active = 1
isPatchData = 0
isPatchControlPointData = 0 <MTLVertexAttributeInternal: 0x144c97180>
name = in_var_ATTRIBUTE4
attributeIndex = 4
attributeType = MTLDataTypeFloat2
active = 1
isPatchData = 0
isPatchControlPointData = 0 <MTLVertexAttributeInternal: 0x144c97210>
name = in_var_ATTRIBUTE13
attributeIndex = 13
attributeType = MTLDataTypeUInt
active = 1
isPatchData = 0
isPatchControlPointData = 0
Fragment Function = <_MTLFunctionInternal: 0x144c408c0>
name = Main_00004ff4_c84a3d9b
device = <AGXG17PDevice: 0x144388000>
name = Apple A18 GPU
functionType = MTLFunctionTypeFragment
attributes: 
Vertex Array:
Buffer 28:
stepFunction = MTLVertexStepFunctionPerInstance
stepRate = 1
stride = 4
Attribute 13:
offset = 0
format = MTLAttributeFormatUInt
Buffer 29:
stepFunction = MTLVertexStepFunctionPerVertex
stride = 12
Attribute 0:
offset = 0
format = MTLAttributeFormatFloat3
Vertex Amplification Mode = MTLVertexAmplificationModeCount
Max Vertex Amplification Count = 1
supportIndirectCommandBuffers = 0
shaderValidation = 0
shaderValidationState = 0
textureWriteRoundingMode = MTLRoundingModeDefault
forceResourceIndex = 0
resourceIndex = 0
Vertex   Depth Compare Clamp Mask = 0x0
Fragment Depth Compare Clamp Mask = 0x0
Needs custom border color samplers =  0
Color Attachments:
Color Attachment 0:
pixelFormat = MTLPixelFormatRG11B10Float
blending = NO
Source blend factors:
RGB   = MTLBlendFactorOne
Alpha = MTLBlendFactorOne
Destination blend factors:
RGB   = MTLBlendFactorZero
Alpha = MTLBlendFactorZero
Blend operations:
RGB   = MTLBlendOperationAdd
Alpha = MTLBlendOperationAdd
writeMask = RGBA
Color Attachment 1:
pixelFormat = MTLPixelFormatR16Float
blending = NO
Source blend factors:
RGB   = MTLBlendFactorOne
Alpha = MTLBlendFactorOne
Destination blend factors:
RGB   = MTLBlendFactorZero
Alpha = MTLBlendFactorZero
Blend operations:
RGB   = MTLBlendOperationAdd
Alpha = MTLBlendOperationAdd
writeMask = RGBA
Color Attachment 2:
pixelFormat = MTLPixelFormatInvalid
blending = NO
Source blend factors:
RGB   = MTLBlendFactorOne
Alpha = MTLBlendFactorOne
Destination blend factors:
RGB   = MTLBlendFactorZero
Alpha = MTLBlendFactorZero
Blend operations:
RGB   = MTLBlendOperationAdd
Alpha = MTLBlendOperationAdd
writeMask = RGBA
Color Attachment 3:
pixelFormat = MTLPixelFormatInvalid
blending = NO
Source blend factors:
RGB   = MTLBlendFactorOne
Alpha = MTLBlendFactorOne
Destination blend factors:
RGB   = MTLBlendFactorZero
Alpha = MTLBlendFactorZero
Blend operations:
RGB   = MTLBlendOperationAdd
Alpha = MTLBlendOperationAdd
writeMask = RGBA
Color Attachment 4:
pixelFormat = MTLPixelFormatInvalid
blending = NO
Source blend factors:
RGB   = MTLBlendFactorOne
Alpha = MTLBlendFactorOne
Destination blend factors:
RGB   = MTLBlendFactorZero
Alpha = MTLBlendFactorZero
Blend operations:
RGB   = MTLBlendOperationAdd
Alpha = MTLBlendOperationAdd
writeMask = RGBA
Color Attachment 5:
pixelFormat = MTLPixelFormatInvalid
blending = NO
Source blend factors:
RGB   = MTLBlendFactorOne
Alpha = MTLBlendFactorOne
Destination blend factors:
RGB   = MTLBlendFactorZero
Alpha = MTLBlendFactorZero
Blend operations:
RGB   = MTLBlendOperationAdd
Alpha = MTLBlendOperationAdd
writeMask = RGBA
Color Attachment 6:
pixelFormat = MTLPixelFormatInvalid
blending = NO
Source blend factors:
RGB   = MTLBlendFactorOne
Alpha = MTLBlendFactorOne
Destination blend factors:
RGB   = MTLBlendFactorZero
Alpha = MTLBlendFactorZero
Blend operations:
RGB   = MTLBlendOperationAdd
Alpha = MTLBlendOperationAdd
writeMask = RGBA
Color Attachment 7:
pixelFormat = MTLPixelFormatInvalid
blending = NO
Source blend factors:
RGB   = MTLBlendFactorOne
Alpha = MTLBlendFactorOne
Destination blend factors:
RGB   = MTLBlendFactorZero
Alpha = MTLBlendFactorZero
Blend operations:
RGB   = MTLBlendOperationAdd
Alpha = MTLBlendOperationAdd
writeMask = RGBA
Vertex Buffer 0:
mutability = MTLMutabilityDefault
Vertex Buffer 1:
mutability = MTLMutabilityDefault
Vertex Buffer 2:
mutability = MTLMutabilityDefault
Vertex Buffer 3:
mutability = MTLMutabilityImmutable
Vertex Buffer 4:
mutability = MTLMutabilityImmutable
Vertex Buffer 5:
mutability = MTLMutabilityImmutable
Vertex Buffer 6:
mutability = MTLMutabilityImmutable
Vertex Buffer 7:
mutability = MTLMutabilityDefault
Vertex Buffer 8:
mutability = MTLMutabilityDefault
Vertex Buffer 9:
mutability = MTLMutabilityDefault
Vertex Buffer 10:
mutability = MTLMutabilityDefault
Vertex Buffer 11:
mutability = MTLMutabilityDefault
Vertex Buffer 12:
mutability = MTLMutabilityDefault
Vertex Buffer 13:
mutability = MTLMutabilityDefault
Vertex Buffer 14:
mutability = MTLMutabilityDefault
Vertex Buffer 15:
mutability = MTLMutabilityDefault
Vertex Buffer 16:
mutability = MTLMutabilityDefault
Vertex Buffer 17:
mutability = MTLMutabilityDefault
Vertex Buffer 18:
mutability = MTLMutabilityDefault
Vertex Buffer 19:
mutability = MTLMutabilityDefault
Vertex Buffer 20:
mutability = MTLMutabilityDefault
Vertex Buffer 21:
mutability = MTLMutabilityDefault
Vertex Buffer 22:
mutability = MTLMutabilityDefault
Vertex Buffer 23:
mutability = MTLMutabilityDefault
Vertex Buffer 24:
mutability = MTLMutabilityDefault
Vertex Buffer 25:
mutability = MTLMutabilityDefault
Vertex Buffer 26:
mutability = MTLMutabilityDefault
Vertex Buffer 27:
mutability = MTLMutabilityDefault
Vertex Buffer 28:
mutability = MTLMutabilityDefault
Vertex Buffer 29:
mutability = MTLMutabilityDefault
Vertex Buffer 30:
mutability = MTLMutabilityDefault
Fragment Buffer 0:
mutability = MTLMutabilityDefault
Fragment Buffer 1:
mutability = MTLMutabilityDefault
Fragment Buffer 2:
mutability = MTLMutabilityDefault
Fragment Buffer 3:
mutability = MTLMutabilityDefault
Fragment Buffer 4:
mutability = MTLMutabilityImmutable
Fragment Buffer 5:
mutability = MTLMutabilityImmutable
Fragment Buffer 6:
mutability = MTLMutabilityImmutable
Fragment Buffer 7:
mutability = MTLMutabilityImmutable
Fragment Buffer 8:
mutability = MTLMutabilityImmutable
Fragment Buffer 9:
mutability = MTLMutabilityDefault
Fragment Buffer 10:
mutability = MTLMutabilityDefault
Fragment Buffer 11:
mutability = MTLMutabilityDefault
Fragment Buffer 12:
mutability = MTLMutabilityDefault
Fragment Buffer 13:
mutability = MTLMutabilityDefault
Fragment Buffer 14:
mutability = MTLMutabilityDefault
Fragment Buffer 15:
mutability = MTLMutabilityDefault
Fragment Buffer 16:
mutability = MTLMutabilityDefault
Fragment Buffer 17:
mutability = MTLMutabilityDefault
Fragment Buffer 18:
mutability = MTLMutabilityDefault
Fragment Buffer 19:
mutability = MTLMutabilityDefault
Fragment Buffer 20:
mutability = MTLMutabilityDefault
Fragment Buffer 21:
mutability = MTLMutabilityDefault
Fragment Buffer 22:
mutability = MTLMutabilityDefault
Fragment Buffer 23:
mutability = MTLMutabilityDefault
Fragment Buffer 24:
mutability = MTLMutabilityDefault
Fragment Buffer 25:
mutability = MTLMutabilityDefault
Fragment Buffer 26:
mutability = MTLMutabilityDefault
Fragment Buffer 27:
mutability = MTLMutabilityDefault
Fragment Buffer 28:
mutability = MTLMutabilityDefault
Fragment Buffer 29:
mutability = MTLMutabilityDefault
Fragment Buffer 30:
mutability = MTLMutabilityDefault
vertexLinkedFunctions = <MTLLinkedFunctionsInternal: 0x144dbaad0>
functions = 
privateFunctions = 
binaryFunctions = 
groups = 
fragmentLinkedFunctions = <MTLLinkedFunctionsInternal: 0x144db90e0>
functions = 
privateFunctions = 
binaryFunctions = 
groups = 
supportAddingVertexBinaryFunctions = NO
maxVertexCallStackDepth = 1
supportAddingFragmentBinaryFunctions = NO
maxFragmentCallStackDepth = 1
explicitVisibilityGroupID = 4294967295
maxAccelerationStructureTraversalDepth = 0

Roadrunner.log (549.8 KB)

Though bumping to metal 3.1 does seem to have resolved that