Description

Repro Rate: 3/3

This is a live issue where the customer claims that the SteamSockets implementaton is not setup to handle the new Client and Session Id setup that was introduced in 5.1.

This issue was reproduced using a GitHub build of //UE5/Release-5.1 at CL 23058290.

Cannot regression test due to difficulties connecting client to host in //UE5/Release-5.0 at CL 20979098.

Steps to Reproduce

Steps:

  1. Open or create a new project.
    • For reference, ShooterGame was used to reproduce this issue.
  2. Set up the project to use Steam Sockets:
    • Go to Edit > Plugins.
    • Search for "Steam Sockets" and enable it, restart when prompted to.
    • Change the Net Driver Definitions in the project's WindowsEngine.ini to use SteamSockets.SteamSocketsNetDriver by adding the following code:
[/Script/Engine.GameEngine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName="GameNetDriver",DriverClassName="/Script/SteamSockets.SteamSocketsNetDriver",DriverClassNameFallback="/Script/SteamSockets.SteamNetSocketsNetDriver")
  1. Create a Listen Server by creating and running the following custom launch profile in the Project Launcher:
    • Project = ShooterGame
    • Do you wish to build = Build
    • Build Configuration = Development
    • Cook = By the book
    • Cooked Platforms = Windows
    • Cooked Maps = Sanctuary + Highrise + ShooterEntry
    • Advanced Settings > Cooker Build Configuration = Development
    • Package = Package & store locally
    • Deploy = Do not deploy
  2. Create a Client by creating and running the following custom launch profile in the Project Launcher:
    • Project = ShooterGame
    • Do you wish to build = Build
    • Build Configuration = Development
    • Cook = By the book
    • Cooked Platforms = WindowsClient
    • Cooked Maps = Sanctuary + Highrise + ShooterEntry
    • Advanced Settings > Cooker Build Configuration = Development
    • Package = Package & store locally
    • Deploy = Do not deploy
  3. Prepare two Windows machines and have the newly created Listen Server in the host machine and the Client in the non-host machine.
  4. Open Steam and sign-in on both machines.
  5. Open ShooterGame in the host machine and open ShooterClient in the non-host machine.
  6. Host a match in the host machine and get its Steam ID.
  7. In the client machine, open up the console command and enter the following:
 Open steam.<SteamIDofHost>

Actual Result: Client can't join the host. The following can be seen in the log:
LogHandshake: Incoming: Rejecting game packet with invalid session id.

Expected Result: Expected handshake to accept Client and Session ID.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-174140 in the post.

40
Login to Vote

Won't Do
ComponentUE - Online
Affects Versions5.1
Target Fix5.3
CreatedJan 13, 2023
ResolvedJan 20, 2023
UpdatedFeb 14, 2023