We have a runtime graph generating ground foliage in a large world, intermittently we are running into an assert in the garbage collector - we are hitting the below assert in FLevelStreamingGCHelper::PrepareStreamedOutLevelForGC. FPCGGraphExecutor::ExecuteV2 is invoking GC through ExecuteTasksEnded, and is itself called through UPCGSubsystem::Tick as per the callstack. We can get around this by disabling pcg.Cache.EnableMemoryBudget but that doesn’t seem like it should be a requirement. Should GC happen during the world tick in this case, and if so are we doing something else wrong? the package that gets GC:ed varies but has so far been some form of /Game/Maps/MapName/_Generated_/XXXXXXXXXXXXXXXX
// This can never ever be called during tick; same goes for GC in general. check(!World->bInTick);