Unreal 4.14 crash while building lightmaps from command line

Hi

UE 4.14 crashes (randomly - say 1 crash every 5 - 10 builds) while building lightmaps for large levels from commandline (ProjectName -run=resavepackages -buildlighting -allowcommandletrendering -map=MapName).
The cras occurs ALWAYS in that same place void FTextRenderSceneProxy::DrawStaticElements in a line ‘Mesh.MaterialRenderProxy = TextBatch.Material->GetRenderProxy(false);’
I’v tried to debug this since TextBatch.Material is a total garbage (bad pointer, definitivelly not UObject derived) but it turns out that inside
bool FTextRenderSceneProxy::BuildStringMesh(…)
there is a code:
if (FontMIDs.IsValid() && FontMIDs->MIDs.IsValidIndex(PageIndex))
TextBatch.Material = FontMIDs->MIDs[PageIndex];

and there is one MIDs (MIDs.Num() == 1) but the MIDs[0] is total garbage to (while it should IMHO be MIDs.Num() == 0, since the used font in question used does not have any MIDs (it’s simple offline font)
It is know isuue (or is there any way to fix it / avoid, since it literally destroys our automated lightmaps rebuild solution from time to time) ?

Hi MXADD,

This issue will be fixed with 4.15. The was recently fixed internally and doesn’t have a JIRA issue for reference.

Thanks for reporting!

Tim

Well this is bit unfortunate … as it breaks totally our automated way to build packages from commandline :confused:
(I’v hacked a quick fix to not use MIDs at all if ran from commandlet, not a prety thing but works) Any chanse to have it properly patched in 4.14 ?

Looks like this will be put in the 4.15 build but won’t make it to 4.14.1 hotfix coming up since it changes a header file. We don’t make header changes with the binary releases. If you’re using GitHub you can look for the files to be merged up there at some point, not sure when though. The fix went into the Dev-Platform branch on 11/17 and merged to Main on 11/21, so the two files are likely to be there in the Master branch merge.

Look for these two files for the latest changes if you want to merge yourself:

  • /Engine/Source/Editor/UnrealEd/Classes/Commandlets/ResavePackagesCommandlet.h
  • /Engine/Source/Editor/UnrealEd/Private/Commandlets/ContentCommandlets.cpp