There’s this bug: UE-61953.
“When the NavMesh is unloaded, it seems that the number of the DirtyLayers array is sometimes smaller than that of the CompressedLayers array.”
I’m seeing exactly that, though I don’t know if it happens when a NavMesh is unloaded or at some other time.
The setup is a world with world composition. The NavMeshBoundsVolumes are in the sublevels (except for one in the persistent level, because I read somewhere that you need one in there). There are also NavMeshModifierVolumes.
It doesn’t always crash in the same area.
It happens in this section of RecastNavMeshGenerator.cpp:
for (int32 iLayer = 0; iLayer < CompressedLayers.Num(); iLayer++)
{
if (DirtyLayers[iLayer] == false || !CompressedLayers[iLayer].IsValid())
{
// skip layers not marked for rebuild
continue;
}
It crashed because DirtyLayers is empty, but CompressedLayers has 1 entry.
Could maybe fix it by checking if has an entry at iLayer, but that might just cover up the problem, I don’t know.
The issue has been changed to “Cannot Reproduce”. Does that mean it’s not being worked on anymore?