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’ve been using Procedural Foliage Volumes over a world partitioned map very regularly, until today I suddenly started getting this error. I have a grid of volumes over the landscape, but mostly (though not always), it crashes with this error message starting today.

I did a landscape build, which allowed me to then be able to run one volume, but then again, this crash reappears.

I’ll investigate what is going on in line 280 and update if I figure this out, but in case anyone has started seeing this, feel free to share any insight.

The solution was that I simply needed to delete my foliage actors.

I had put them in their own folder, so that when I respawned foliage it was generating the error.

1 Like

I got the same error but only when trying to resimulate. My solution was simular, just selected the instanced foliage actors in the Outliner view and deleted them. Then the resimulation of the procedural foliage worked like a charm.

Getting this error when trying to paint foliage UE5.1 .

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

Settings:
World Partition
All foliage was assigned to a DataLayer (Editor)
Is Spatially Loaded enabled on all landscape instances
The scene also included Procedural Foliage Spawner

The Solution for me was to delete the DataLayer containging the foliage.

Also tried without success:
Make DataLayer visible
Make all Landscape instances visible
Disabled Is Spatially Loaded on all Landscape instances.
Removing all ProceduralFoliageSpawner

Related

1 Like

Unreal broke down when trying to draw foliage on a landscape, while it turned out that if the landscape was raised higher, then everything would work without errors (a crutch from Russian students). The most stupid bug.

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

I have the same problem
the solution is to select the foliage data layers on the data layer outline and click [Make Current Data Layer(s)] before dealing with the foliage

The main thing is that the current data layers must be exactly the same as the instanced foliage actor

2 Likes

Just encountered this issue in UE5.3 and your solution works like a charm. Thanks!

Extra Tip: You can also set folder where Foliage Instance Actors will be placed by right clicking that folder and “Make Current Folder”.