UE recompiles shaders on every frame of rendering

LogShaderCompilers: Warning: Failed to compile Material /Engine/Transient.Footage CaptureData Material for platform PCD3D_SM6, Default Material will be used in game.
  /Engine/Private/SlateElementPixelShader.usf:168:58: error: no member named 'GetFrontSubstrateHeader' in 'FMaterialPixelParameters'
            FSubstratePixelHeader SubstratePixelHeader = Parameters.GetFrontSubstrateHeader();
                                                         ~~~~~~~~~~ ^
  /Engine/Private/SlateElementPixelShader.usf:169:50: error: no member named 'SubstrateTree' in 'FSubstratePixelHeader'
            FSubstrateBSDF UnlitBSDF = SubstratePixelHeader.SubstrateTree.BSDFs[0];

So yeah, basically what the title says. Usually this problem can be resolved by fixing a “bad” material but this time the issue is related to Substrate. Once I turn it off in the project settings, all the scenes will render fine.

It will even occur in a completely empty map which is super strange.

Any tips? I couldn’t find anything on Discord, Reddit or UE forums.

Considering that substrate is still in Beta, I’m not sure there’s much you can do except tell the substrate devs and ask for a fix. Even though substrate ostensibly has parity with the old path now, I’m still finding significant problems.

Update: To anyone still struggling with this issue, try disabling the Metahuman plugin. This issue is known to EPIC and will be investigated.