4.13.2 - ResavePackagesCommandlet Null Material Function Inputs and Outputs

I have been trying to resolve null exception crash occurring when baking a level via the ResavePackagesCommandlet. I am executing the commandlet with the -map and -buildlighting params.

The exception occurs in UMaterialExpressionMaterialFunctionCall::Compile() Line 7314.
I seeing all multiple Function Inputs and Outputs, however they are all null.

The flow as I see it is that the baking process hits a material that doesnt match the given shader in DDC decides to recompile a shader map. During compilation a material function is encountered. For some reason the Material functions Inputs and Outputs have the correct number of entries for the given material function, but they are all null. So far I have verified that the material in question is setup correctly with previews added to its inputs. It produces no errors on save. If I delete the material, it will crash on the next material function encountered.

  • We are running UE4 14.13.1
  • I have cleared the DDC.
  • I have cleared all redirectors.
  • I have enabled the following console varaibles in ConsoleVariables.ini, with no additional output seen other than the ShaderDebugInfo folder which just contains the Oculus and PixelShaderDeclaraion folders.
  • r.ShaderDevelopmentMode=1
  • r.DumpShaderDebugInfo=1

Can you think of any reason that this would occur?


Hi Cort,

Would it be possible for you to try reproducing this in a new project with minimal assets and then privately sharing that with us? If you can pass us a reproduction case it should be much quicker to look in to as it definitely sounds like there’s a bug there. We did recently fix a few material function issues for 4.14 so it could be related, but it’s difficult to offer suggestions without getting the assert up in front of me.


Sounds good. We are currently wrapping up our 4.14 integration now. I should be able to isolate it down to a minimal project soon.

Thanks Cort. I’m hoping it’s one of the crashes we’ve already resolved in the 4.14 release but if not I might be able to get a fix into the .1 or .2 revision release depending on how severe the code changes need to be.

This issue is now fixed in 4.14.1. Thanks Chris for the response.