We are currently experiencing a strange issue on multiplayer clients.
When the host’s pawn despawns, the following assert is hit on the client:
Assertion failed: WorldSettings [File:D:\Build\++UE4+Release-4.18+Compile\Sync\Engine\Source\Runtime\Engine\Private\Level.cpp] [Line: 438] <censored>!FDebug::AssertFailed() <censored>!ULevel::SortActorList() <censored>!UWorld::AddToWorld() <censored>!UWorld::UpdateLevelStreamingInner() <censored>!UWorld::UpdateLevelStreaming() <censored>!UGameViewportClient::Draw() <censored>!FViewport::Draw() <censored>!UGameEngine::RedrawViewports() <censored>!UGameEngine::Tick() <censored>!FEngineLoop::Tick() <censored>!GuardedMain() <censored>!GuardedMainWrapper() <censored>!WinMain()
We did not change any code in our project regarding level streaming, so we are at a loss what might lead to this issue, as it did not occur until very recently. When playing single player loading and unloading all streaming levels seems to be working fine. Only the client sees such crashes.
Does anyone know how this situation can come to be? What I mean is, under what circumstances can ULevel::WorldSettings be a nullptr?
Edit: The editor throws the following errors:
LogNetPackageMap: Warning: SerializeNewActor: Static actor failed to load: FullNetGuidPath: /Game/_game_/Maps/Landscape/<censored>/UEDPIE_2_<censored>.<censored>.PersistentLevel.WorldSettings, Channel: 67
(here “censored” is the level name)
Edit 2: I’m not certain that those log messages have anything to do with the actual error. I dug out some old log files from way before we had the assert failure, and those also have these messages.