net.SkipMissingLevelDisconnect does what? PIE client disconnects from PIE server without it.

If async loading of world resources is sufficiently delayed, the PIE clients will get disconnected from the PIE server.

NOTE: Setting the CVAR net.SkipMissingLevelDisconnect resolves the issue - the comment on line 1844 of NetConnection.cpp (where the CVar is used in an if-statement) implies there is a repro case internally at Epic and the bug is #sh-06-13-desert-biome-server-kicks-ext

Steps to Reproduce

Run a world paritioned level with several level instances such that async loading may take a while. Build with Debug or DebugGame to slow the process further. Then run in “dedicated server” mode in PIE with “run under one process” and two clients.

Hi,

This CVar was added to mitigate an internal issue where the client would attempt to load a level that was not present on the server. Normally in this case, when the client sends the RPC to the server to update the visibility of the level for that connection, the server closes the connection since it cannot find the level. This CVar was added to skip this, as the disconnect was occurring erroneously in the internal issue.

Like that comment says though, this is a temporary fix, and I don’t believe we’d recommend projects enable and rely on this CVar. If disconnects are occurring in PIE due to level streaming, this is a bug we’d want to investigate and resolve.

I don’t believe we’ve gotten any reports of similar issues, so to get a better idea of the problem you’re encountering, I do have some questions.

First, are these level instances using the “Standalone” or “Embedded” Level Behavior?

Also just to clarify, is the disconnect occurring when first starting PIE, or only when one of the clients attempts to stream in one of the level instances?

When enabling the CVar to prevent the disconnect, do you encounter any further issues with level streaming or replication later in the PIE session, or does everything run as expected?

Are you enabling/disabling any other CVars related to world partition or replication, such as wp.Runtime.UseMakingVisibleTransactionRequests or net.AllowAsyncLoading?

If you’re able to reproduce the issue in a sample project like Lyra or if you could provide a project reproducing the issue, that would be greatly appreciated. Any logs from when the issue occurs, with the verbosity increased for the LogPlayerController, LogNet, LogLevelStreaming, and LogWorldPartition categories, would also be appreciated.

Please note that support will be limited for the next two weeks, but with any additional information you can provide here, we will look more into this issue after the break.

Thanks,

Alex