We’re running into a bizarre bug(?) where sometimes clients fail to seamless travel and just appear to hang while in the transition map (black screen). We have no idea why this is happening, or what could even be causing it. It’s impossible to reproduce with just one client connecting to a listen server but can easily be reproduced once we start adding more players to the test. Client-side logs don’t appear to show anything different between a successful travel and an unsuccessful travel.
Our travel flow between maps is as follows:
1: Server hosts lobby. Players connect. ‘lobby’ is just a map (this has it’s own player controller, gamestate, and playerstate classes which are separate from the main game levels).
2: Once players are ready the server calls servertravel and takes all the players to the game map (with it’s gamemode, player and gamestates etc etc.
3: At the end of a match they get servertravelled back to the lobby etc.
The ‘sticking’ is most noticeable between the lobby and the game map (between 1 and 2) but I think it may actually happen sometimes between 2 and 3 which is less noticeable because:
Stuck players still respond to new servertravel commands. So for example, server loads next map after seamless travel but the client is stuck and never loads. If the server calls servertravel and travels back to the lobby the ‘stuck’ players actually respond. So it’s not like they’re losing connection to the server or anything.
edit: Just an extra note, we have only ever seen a player get stuck after the first proper match. If a player connects just after a game has been hosted (and is still at the lobby) the player will be able to travel into the match just fine. However once the player returns to the lobby and tries to travel to the next map after that, they get stuck
We’re on source compiled 4.16.3 using OnlineSubsystemSteam. Testing in packaged development build.
Server-travel is such a self contained function we don’t really know how to even troubleshoot this issue (like how could we have broken it) so I’m wondering if someone can help even just suggesting an area of investigation or literally anything we could try.
edit: another note - I’m sure if this was a problem with the engine others would have reported it so I’m pretty certain we’ll have just don’t something wrong. What that may be, however, I have no idea.