Online Beacon with Steam Subsystem stops working after seamless ServerTravel - Unreal Engine 5.3

I have a working dedicated server and a client build set up. Clients can successfully connect to the server once it boots the first map - either going through the Online Beacon or directly via the “open” console command.

The current flow is:

  • Client clicks to join a server via the server browser at the main menu
  • Online beacon handles the initial communication, checking for a few things (is the server full? is the server accepting connections at the moment? etc)
  • If the server accepts the connection, then the client travels to the server as normal

This all works when I first start the server. When the server switches to a new map using seamless travel (by calling ServerTravel()), I can see that the online beacon gets destroyed and a new one is created once the new map is loaded (the online beacon creation happens inside the game mode). The creation is successful, since the logs show that InitHost() returns true on the server and the respective NetDriver is set up. But, if a Client now attempts to connect to the server by going through the online beacon, it appears the Client Beacon is unable to communicate with the server, getting time out errors. On the server side, I can see no sign of requests coming from the client.

I’m at loss here since I haven’t found anyone with similar problems. I have already attempted to disable steamNetworking and p2p relays, but the problem is the same, the beacon only works when the server boots on the first map, any subsequent ServerTravel(…) will result in the online beacon not working anymore.

I also tried using SteamSockets and IpNet for the net driver on the online beacon, both display the exact same behavior as described above.

Can anyone provide any insight?

Have you tried turning off seamless travel (in game mode settings)?
I can’t remember a period when it worked stably. Are you sure you need this feature?

I haven’t been able to get the hard travel to work without the players disconnecting from the server when ServerTravel is called. Maybe I’m doing something wrong, is it possible to use the hard travel and keep players “connected” to the server? Seamless travel is working fine for me (apart from the online beacon problem, but I suspect seamless travel is not the culprit here), although being able to use a hard travel would be better for me since I’d feel more safe about my game state properly resetting after a new map load.

About my issue, it seems something wasn’t being applied correctly. The issue seems to come from bUseSteamNetworking set to true. Switching it off (that is, not using Steam Sockets at all) and using the IpNetDriver for the beacon appears to fix the issue. So I suspect the problem is caused by trying to use online beacons with the Steam Sockets plugin and bUseSteamNetworking set to true.