UE 5.5 - Online Subsystem 'Join Session' always results in `On Failure`

I’m developing a multiplayer game primarily in Blueprints, and am using the ‘Advanced Sessions’ and ‘Advanced Steam Sessions’ plugins (though my issue does not appear to be with these at all, but rather the engine’s built in Join Session functionality).

When developing in the editor, I can run two standalone clients on the same machine, and the session creation, finding, and joining all works flawlessly. While this does popup the Steam context window, I appreciate that this doesn’t utilise Steams backend, I’m mostly just using this to test game logic/replication.

I packaged a ‘development’ build of the game and have been having a few friends help me test. All of us can create an ‘Advanced Session’ no problem, and the ‘Find Advanced Sessions’ node also brings back our specific game sessions, so I’m confident that sessions are being created and exposed through Steam correctly. However, when attempting to join the sessions using the engine’s built in ‘Join Session’ node, it always ends up Failing (very explicity down the failure outcome).

There’s nothing to note in the logs (pasted below) per se except the second line from the bottom LogOnlineSession: Warning: STEAM: [FOnlineSessionSteam::JoinSession] The values of FOnlineSessionSettings::bUsesPresence and FOnlineSessionSettings::bUseLobbiesIfAvailable are treated as equal and have to match, however both bUseLobbiiesIfAvailable and bUsesPresence are set to true when the session is created.

Checked Common Issues

I’ve triple checked all the common debug steps:

  • Steam sockets is off (known to cause issues in recent UE versions), and all relevant Steam/Subsystem plugins are on
  • Host opens level with ‘listen’ param
  • AppId is 480 (and this clear works as session creation and session search UI have no issues)
  • I’ve set my download region to match my friends (prior to this I didn’t find any session results, as expected)
  • My EngineDefaut.ini is as per Unreal’s latest docs
  • I’ve manually added a steam_appid.txt with 480 inside to the build output folder (next to the .exe) as it didn’t seem to automatically generate this and I previously got errors for Steam not correctly initialising without this.

(Please forgive my debugging spaghetti)

Create Session

Find Sessions
(It’s cut off, but I extract all of the information to the UI when succesful)

Join Session:

(This Always ends up down the On Failure branch)

Logs

[2024.11.15-15.08.57:182][331]LogOnlineSession: STEAM: Found 1 lobbies, finalizing the search
[2024.11.15-15.08.57:182][331]LogOnlineSession: STEAM: Search result 0: LobbyId=Lobby[0x1860000A22CDCF5], LobbyId.IsValid()=true, CSteamID(LobbyId).IsLobby()=true
[2024.11.15-15.08.57:183][331]LogScript: Script Msg: Found a session. Ping is 9999
[2024.11.15-15.08.59:779][272]LogOnlineSession: Warning: STEAM: Server response IP:217.17.82.149
[2024.11.15-15.08.59:779][272]LogOnlineSession: Warning: STEAM: Removed incompatible build: ServerBuildUniqueId = 0x00000000, GetBuildUniqueId() = 0x023ecee6
[2024.11.15-15.09.00:067][375]LogOnlineSession: Warning: STEAM: Server response IP:76.139.168.52
[2024.11.15-15.09.00:067][375]LogOnlineSession: Warning: STEAM: Removed incompatible build: ServerBuildUniqueId = 0x00000000, GetBuildUniqueId() = 0x023ecee6
[2024.11.15-15.09.00:108][391]LogOnlineSession: Warning: STEAM: Server response IP:3.21.236.47
[2024.11.15-15.09.00:108][391]LogOnlineSession: Warning: STEAM: Removed incompatible build: ServerBuildUniqueId = 0x00000000, GetBuildUniqueId() = 0x023ecee6
[2024.11.15-15.09.01:740][985]LogOnlineSession: Warning: STEAM: Failed to respond IP:84.14.105.229
[2024.11.15-15.09.01:740][985]LogOnlineSession: Warning: STEAM: Failed to respond IP:118.31.223.0
[2024.11.15-15.09.01:740][985]LogOnlineSession: Warning: STEAM: Failed to respond IP:134.17.6.4
[2024.11.15-15.09.01:743][985]LogBlueprintUserMessages: [W_MainMenu_C_2147482250] Success! Found 1 sessions
[2024.11.15-15.09.01:743][985]LogBlueprintUserMessages: [W_MainMenu_C_2147482250] Hanayou
[2024.11.15-15.09.01:743][985]LogBlueprintUserMessages: [W_MainMenu_C_2147482250] Joining Session...
[2024.11.15-15.09.03:743][712]LogBlueprintUserMessages: [W_MainMenu_C_2147482250] 109775243638004981
[2024.11.15-15.09.03:744][712]LogOnlineSession: Warning: STEAM: [FOnlineSessionSteam::JoinSession] The values of FOnlineSessionSettings::bUsesPresence and FOnlineSessionSettings::bUseLobbiesIfAvailable are treated as equal and have to match
[2024.11.15-15.09.03:744][712]LogBlueprintUserMessages: [BP_GameInstance_C_2147482572] Server Join Failed

DefaultEngine.ini

[/Script/Engine.GameEngine]
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="OnlineSubsystemSteam.SteamNetDriver",DriverClassNameFallback="OnlineSubsystemUtils.IpNetDriver")

[OnlineSubsystem]
DefaultPlatformService=Steam

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480

; If using Sessions
; bInitServerOnClient=true

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName="OnlineSubsystemSteam.SteamNetConnection"
2 Likes

Hello. I am having the same issue as you mentioned. I was originally developing in 5.4 but migrated my project to UE5.5 due to a bug with seamless travel. All my logic which worked previously in UE5.4 (namely creating and joining sessions) no longer seems to work in 5.5. It is very frustrating.

(post deleted by author)

Hi, thanks for taking the time to reply.

This is interesting advice that I’m happy to try once I get back to my test setup.
Can I ask why / what this is supposed to acheive?

My understanding is that the Join Session node should work with nothing connected to any of the outputs. It should join the session and cause the client to travel to the level the host is currently on.

The only things I have connected to the On Failure and On Success are print string debug messages, but I wouldn’t have thought the behaviour will change with/or without these, and I can’t immediately see why the top exec pin is relevant at all.

Not doubting your information (thank you for sharing more than anything), just curious where your suggestion comes from.

I’ve tried this with verbose logging enabled, but unfortunately no change:

One interesting thing is that the On Failture outcome was logged before the generic execution pin outcome.

[2024.11.17-07.48.12:773][555]LogBlueprintUserMessages: [W_MainMenu_C_2147482451] Finding sessions...
[2024.11.17-07.48.12:774][555]LogOnline: VeryVerbose: OSS: FOnlineAsyncTaskManager::AddToInQueue [FOnlineAsyncTaskSteamFindLobbiesForFindSessions bWasSuccessful: 0 NumResults: -842150451]
[2024.11.17-07.48.12:776][555]LogOnline: VeryVerbose: OSS: FOnlineAsyncTaskManager::GameTick Starting serial task [FOnlineAsyncTaskSteamFindLobbiesForFindSessions bWasSuccessful: 0 NumResults: -842150451]
[2024.11.17-07.48.12:776][556]LogOnlineSession: Verbose: STEAM: Starting search for Internet games...
[2024.11.17-07.48.12:780][556]LogRHI: Display: Encountered a new graphics PSO: 1911018763
[2024.11.17-07.48.13:286][705]LogOnline: Verbose: STEAM: FOnlineAsyncEventSteamLobbyUpdate LobbyId: Lobby[0x1860000B02F1DBE]
[2024.11.17-07.48.13:286][705]LogOnline: VeryVerbose: OSS: FOnlineAsyncTaskManager::AddToOutQueue [FOnlineAsyncEventSteamLobbyUpdate LobbyId: Lobby[0x1860000B02F1DBE]]
[2024.11.17-07.48.13:328][718]LogOnline: Verbose: OSS: Async task 'FOnlineAsyncTaskSteamFindLobbiesForFindSessions bWasSuccessful: 1 NumResults: 1' succeeded in 0.554131 seconds
[2024.11.17-07.48.13:328][718]LogOnline: VeryVerbose: OSS: FOnlineAsyncTaskManager::AddToOutQueue [FOnlineAsyncTaskSteamFindLobbiesForFindSessions bWasSuccessful: 1 NumResults: 1]
[2024.11.17-07.48.13:330][718]LogOnlineSession: STEAM: Found 1 lobbies, finalizing the search
[2024.11.17-07.48.13:330][718]LogOnlineSession: STEAM: Search result 0: LobbyId=Lobby[0x1860000B02F1DBE], LobbyId.IsValid()=true, CSteamID(LobbyId).IsLobby()=true
[2024.11.17-07.48.13:333][718]LogScript: Script Msg: Found a session. Ping is 9999
[2024.11.17-07.48.13:333][718]LogOnline: VeryVerbose: OSS: FOnlineAsyncTaskManager::AddToInQueue [FOnlineAsyncTaskSteamFindServers bWasSuccessful: 0 Results: 0]
[2024.11.17-07.48.13:333][718]LogOnline: VeryVerbose: OSS: FOnlineAsyncTaskManager::GameTick Starting serial task [FOnlineAsyncTaskSteamFindServers bWasSuccessful: 0 Results: 0]
[2024.11.17-07.48.13:333][719]LogOnlineSession: Verbose: STEAM:  "gamedir" "unrealtest" 
[2024.11.17-07.48.14:174][968]LogOnlineSession: Warning: STEAM: Server response IP:118.31.223.0
[2024.11.17-07.48.14:174][968]LogOnlineSession: Warning: STEAM: Removed incompatible build: ServerBuildUniqueId = 0x00000000, GetBuildUniqueId() = 0x023ecee6
[2024.11.17-07.48.14:378][ 25]LogOnlineSession: Warning: STEAM: Server response IP:3.21.236.47
[2024.11.17-07.48.14:378][ 25]LogOnlineSession: Warning: STEAM: Removed incompatible build: ServerBuildUniqueId = 0x00000000, GetBuildUniqueId() = 0x023ecee6
[2024.11.17-07.48.14:418][ 35]LogOnlineSession: Warning: STEAM: Server response IP:76.139.168.52
[2024.11.17-07.48.14:418][ 35]LogOnlineSession: Warning: STEAM: Removed incompatible build: ServerBuildUniqueId = 0x00000000, GetBuildUniqueId() = 0x023ecee6
[2024.11.17-07.48.15:980][487]LogOnlineSession: Warning: STEAM: Failed to respond IP:134.17.6.4
[2024.11.17-07.48.15:980][487]LogOnlineSession: Warning: STEAM: Failed to respond IP:173.248.51.7
[2024.11.17-07.48.15:980][487]LogOnlineSession: Verbose: STEAM: Server query complete '0' eServerResponded (Server success)
[2024.11.17-07.48.15:980][487]LogOnline: Verbose: OSS: Async task 'FOnlineAsyncTaskSteamFindServers bWasSuccessful: 1 Results: 0' succeeded in 2.646849 seconds
[2024.11.17-07.48.15:980][487]LogOnline: VeryVerbose: OSS: FOnlineAsyncTaskManager::AddToOutQueue [FOnlineAsyncTaskSteamFindServers bWasSuccessful: 1 Results: 0]
[2024.11.17-07.48.15:981][487]LogBlueprintUserMessages: [W_MainMenu_C_2147482451] Success! Found 1 sessions
[2024.11.17-07.48.15:981][487]LogBlueprintUserMessages: [W_MainMenu_C_2147482451] Hanayou
[2024.11.17-07.48.15:981][487]LogBlueprintUserMessages: [W_MainMenu_C_2147482451] Joining Session...
[2024.11.17-07.48.17:979][ 40]LogBlueprintUserMessages: [W_MainMenu_C_2147482451] 109775243873033662
[2024.11.17-07.48.17:979][ 40]LogOnlineSession: Warning: STEAM: [FOnlineSessionSteam::JoinSession] The values of FOnlineSessionSettings::bUsesPresence and FOnlineSessionSettings::bUseLobbiesIfAvailable are treated as equal and have to match
[2024.11.17-07.48.17:979][ 40]LogBlueprintUserMessages: [BP_GameInstance_C_2147482572] Join Session Failed!
[2024.11.17-07.48.17:979][ 40]LogBlueprintUserMessages: [BP_GameInstance_C_2147482572] JoinSession Executed....

Upon further extensive testing there appears to be either a breaking change with ‘Join Session’ in Unreal Engine 5.5 OR Advanced Sessions plugin is somehow causing the issue.

I have tested the following:

  • A brand new UE 5.5 project with minimal creation/join setup using the advanced session 5.5 binaries
  • The same as above but for UE 5.4.4 with the 5-4-4 binaries. As far as I know, although the 5.5 binaries are published separetely on the site: Advanced Sessions Binaries – VR Expansion Plugin , they remain unchanged from the 5.4.4 binaries and are just rebuilt for the 5.5 version of the engine, so it seems like the issue is a change in the engine itself.

The exact same setup works flawlessly in UE 5.4.4 but not in UE 5.5.

1 Like

Having the exact same issue and logs for my project in 5.5. Im glad im not alone :open_mouth:

I’m seeing the same thing. I’m creating a steam session on one PC, then print out all the session settings. I see that bUsesPresence = true and bUseLobbiesIfAvailable = true. Then on another PC I search and find the session, noting that bUseLobbiesIfAvailable has now become false for some reason. I’ll never be able to join the session because of that conflict and get that same error message over and over.

“LogOnlineSession: Warning: STEAM: [FOnlineSessionSteam::JoinSession] The values of FOnlineSessionSettings::bUsesPresence and FOnlineSessionSettings::bUseLobbiesIfAvailable are treated as equal and have to match”

I’ve also confirmed this same result through editing the plugin and logging the sessions results array, then forcing bUsesPresence and bUseLobbiesifAvailable to be true before calling Join Session, and it seems to work fine if they are both forced to true (so the joining logic itself still seems to function as expected if it can get past the initial conditional check).
https://github.com/EpicGames/UnrealEngine/blob/1308e62273a620dd4584b830f6b32cd8200c2ad3/Engine/Plugins/Online/OnlineSubsystemSteam/Source/Private/OnlineSessionInterfaceSteam.cpp#L859C1-L864C3

I think this may also align with the following changes in UE 5.5:

  • Deprecated usage of SEARCH_PRESENCE in OSS Sessions
  • Fix for override of the value the bUsesPresence in OSS EOS Lobbies

On the first point, Visual Studio logs the following warning when building the plugin source:
warning C4996: 'SEARCH_PRESENCE': SEARCH_PRESENCE ("PRESENCESEARCH") is deprecated and will soon stop being a valid UE-defined key. Please consult upgrade notes for more details Please update your code to the new API before upgrading to the next release, otherwise your project will no longer compile.
I’m not entirely sure what the replacement is supposed to be and the upgrade docs mentioned don’t seem to referenced anywhere in the release notes for 5.5.

The second point suggests to me Epic were aware of issues to do with presence and lobbies from recent engine changes and have made some fixes to EOS accordingly for the 5.5 release, but seemingly have missed something with the Steam implementation.

For any of you using Advanced Sessions i’m going to add a check against dedicated sessions and manually set the two bools for now, appears they screwed up in their presence changes.

Anything using AS should generally have those set for non dedicated sessions anyway.

Edit The master branch has these changes if you want to test them

Thanks for getting back on this and making the changes so quickly.
I’ve validated the latest binaries from the master branch in the 5.5 version of my project and it all works as expected now.

Hopefully Epic can sort out all of the Steam interface issues so we won’t need these workarounds in future!

Just in case anyone is unsure (or didn’t get the plugin from GitHub), the master branch binaries are here:

For those using the precompiled binaries those are being built right now, now that i know its working.

Binaries updated