UE5.1 fails to initialize. Assertion failed: !IsValidChecked(ExistingActor) [File:D:\build\++UE5\Sync\Engine\Source\Runtime\Engine\Private\ActorPartition\ActorPartitionSubsystem.cpp] [Line: 280]

I had the same problem. Took some time to work out.

What the foliage actor in problem code segment is expected to do is: if you don’t find a Foliage actor you can use, find one labeled as recycled and reuse it. Normally, in the same area, brush vegetation, undo, and brush again will enter the problem code segment.

The situation I crashed was that in the scene, there was a working foliage actor and the appearance (name, location, model) looked like everything was fine. But APartitionActor* GetActor does not find this actor in the FindActor lambda expression. This causes an error.

The investigation found that the GridIndex judgment did not pass, and the foliage actor that looked completely normal, and its GridIndex was wrong data.

Continuing to investigate, it turns out that these GridIndexes were already wrong when FPartitionActorDesc::Serialize.
Why is it wrong, I didn’t reproduce, it may be related to workflow, or it may be an engine bug.

The solution is to resave the foliage actor, which triggers the FPartitionActor Desc::Init, which recalculates the GridIndex.

In addition, the GridSize and GridGuid are reacquired. So if this error is caused by a size or GUID issue, resaving the Foliage Actor can also be resolved.

1 Like