Steamworks server browser "Failed to respond"

Hello all,

Several months ago I had an issue in UE3 with my steamworks server browser. I was never able to fix it and eventually moved to UE4 to get away from the problem and reap the other benefits of the engine.

So today I was pretty ****** to see the same error appear again.

When I search for servers with the online subsystem I get this error being printed to the logs:


[2015.07.27-22.02.54:509][931]LogOnline:Display: STEAM:  "gamedir" "boxmanbegins" 
[2015.07.27-22.02.56:992] 80]LogOnline:Display: STEAM: Failed to respond IP:MYFRIENDSIP
[2015.07.27-22.02.56:992] 80]LogOnline:Display: STEAM: Server query complete '0' eServerResponded (Server success)

What does it mean? And how can I fix it?

If there’s any other information you’d like to help me solve this I’ll post it asap.

I did some more tests on this and got no where fast which is pretty crushing. I find it remarkable no one seems to have this problem and not a single person has ever offered much help on it. If you have any ideas please reply, our project has been derailed by this once, and it’s awful for this problem to have happened again.

I swapped from using the Steamworks GameServer API (bUsesPresence = false) to the Steamworks lobby system (bUsesPresence=true) and tested again, but to no avail.

I got this error:


[2015.07.28-21.22.41:560][113]LogOnline:Display: STEAM: Starting search for Internet games...
[2015.07.28-21.22.42:043][142]LogOnline:Display: STEAM: Found 0 lobbies, finalizing the search

Then we tried a direct connection with a console command, and it failed to connect, printing this in the logs:


[2015.07.28-21.26.08:505][522]LogNet: Browse: MYFRIENDSIP//Game/BoxmanBegins/Maps/BMFrontEnd
[2015.07.28-21.26.08:505][522]LogInit: WinSock: Socket queue 32768 / 32768
[2015.07.28-21.26.08:505][522]LogNet: Game client on port 7777, rate 10000
[2015.07.28-21.26.08:505][522]LogNet: GetLocalNetworkVersion: GEngineNetVersion: 0, ProjectName: boxmanbegins, ProjectVersion: 1.0.0.0, InternalProtocolVersion: 8, LocalNetworkVersion: 2980932986
[2015.07.28-21.26.14:063][855]LogNet: Browse: MYFRIENDSIP//Game/BoxmanBegins/Maps/BMFrontEnd
[2015.07.28-21.26.14:063][855]LogNet: UNetConnection::Close: Name: SteamNetConnection_0, Driver: PendingNetDriver SteamNetDriver_1, PC: NULL, Owner: NULL, Channels: 2, RemoteAddr: MYFRIENDSIP:7777, Time: 2015.07.28-21.26.14
[2015.07.28-21.26.14:063][855]LogNet: UChannel::Close: Sending CloseBunch. ChIndex == 0. Name: ControlChannel_0
[2015.07.28-21.26.14:063][855]LogNet: DestroyNamedNetDriver SteamNetDriver_1 [PendingNetDriver]
[2015.07.28-21.26.14:063][855]LogExit: PendingNetDriver SteamNetDriver_1 shut down

Now I’m at a complete loss. I couldn’t find much online about this, other than my own futile posts on various places. An no one seems to have any advice.

So any help from anyone is appreciated

Thanks

So I solved this today, and I’d like someone who know’s about stuff to tell me what I did, because I’m not sure.

I compared my session management code to the code found in the *Session blueprints nodes and found some differences. One of those differences, was that bAllowJoinViaPresence was being set to true in Epic’s code, and was never being set in my code. I didn’t know what it was so I avoided it. I know if bUsesPresence is set to true steamworks lobbies are used. But nothing aside from that.

So anyway, I set bAllowJoinViaPresence to true, and it worked suddenly.

Why? What is presence anyway?

Oh also, found in Engine code, these are not useful comments when nowhere in documentation does it say what Presence is.

/** Whether to display user presence information or not /
bool bUsesPresence;
/
* Whether joining via player presence is allowed or not */
bool bAllowJoinViaPresence;

Does it have any relation to the fact that the code didn’t work when bUsesPresence was set to false? I would assume if bUsesPresence is set to true, then bAllowJoinViaPresence would have an effect, but not otherwise. If anyone has any insight, that’d be great.