I have a check fail in ULevelStreaming::RequestLevel with output:
“World exists but PersistentLevel doesn’t for [package], most likely caused by reference to world of unloaded level and GC setting reference to NULL while keeping world object”.
This is caused by the level not getting completely garbage collected when unloaded by streaming. So the next time it is to be loaded, the partly-GC’d package is found and the above error is output.
Maybe this is to do with the level being unloaded before it has been completely loaded, as the easiest way to reproduce it is to run back and forth in an area that causes the level to be loaded/unloaded repeatedly, also putting a FlushAsyncLoading() call in FLevelStreamingGCHelper::PrepareStreamedOutLevelsForGC() seems to fix the issue (this isn’t a valid fix though since any levels being loaded would block the game thread).
In the change lists of newer UE4 versions there are some changes that sound like they could be related to our problem - do you know if this issue is known or has been fixed?
It’s likely caused by something we’ve done, but I thought I’d ask!