UE5.7 dedicated server error with “PacketHandler parsing packet with zero’s in last byte.”

UE5.7 dedicated server error with “PacketHandler parsing packet with zero’s in last byte.”

Our project uses Steam for multiplayer online play, and also uses a dedicated server for online player connections. Players can create a Steam session to play online after launching the game from the Steam client, or they can directly connect to our dedicated server using OpenLevel (using an IP address and port). This worked well with UE5.5. The system’s default online subsystem is Steam, and the default GameNetDriver is OnlineSubsystemSteam.SteamNetDriver.

After upgrading to UE5.7, we found that to support Steam multiplayer, GameNetDriver needs to be changed to SteamSockets.SteamSocketsNetDriver; otherwise, joining a Steam session will fail. However, after this modification, when connecting to a standalone server, the server outputs the following errors:

[2025.12.08-01.40.48:327][481]LogNet: NotifyAcceptingConnection accepted from: 127.0.0.1:51995
[2025.12.08-01.40.48:335][481]PacketHandlerLog: Error: PacketHandler parsing packet with zero's in last byte.

This prevents the client from successfully connecting to the server.

We suspect that there are some issues with the new SteamSocketsNetDriver communicating with the server.

We tried switching GameNetDriver to SteamSockets.SteamSocketsNetDriver or OnlineSubsystemUtils.IpNetDriver during game runtime to support both online play modes, but this solution didn’t work due to insufficient documentation and our limited experience.

DefaultEngine.ini

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

[OnlineSubsystemSteam]
bEnabled=true
SteamDevAppId=480

[/Script/OnlineSubsystemSteam.SteamNetDriver]
NetConnectionClassName=OnlineSubsystemSteam.SteamNetConnection

Has anyone encountered this problem, and are there any good solutions to support both online play modes?

Hi! Did you manage to switch between SteamSockets and IpNetDriver at runtime? I tried to do that by adding options to the OpenLevel and ClientTravel with no luck. It works only if I launch the game with -nosteam or if steam is not running in the background. My config:

[/Script/Engine.GameEngine]
!NetDriverDefinitions=ClearArray
+NetDriverDefinitions=(DefName=“GameNetDriver”,DriverClassName=“/Script/SteamSockets.SteamSocketsNetDriver”,DriverClassNameFallback=“/Script/OnlineSubsystemUtils.IpNetDriver”)
+NetDriverDefinitions=(DefName=“IpDriver”,DriverClassName=“/Script/OnlineSubsystemUtils.IpNetDriver”,DriverClassNameFallback=“/Script/OnlineSubsystemUtils.IpNetDriver”)
+NetDriverDefinitions=(DefName=“SteamDriver”,DriverClassName=“/Script/SteamSockets.SteamSocketsNetDriver”,DriverClassNameFallback=“/Script/OnlineSubsystemUtils.IpNetDriver”)
+NetDriverDefinitions=(DefName=“DemoNetDriver”,DriverClassName=“/Script/Engine.DemoNetDriver”,DriverClassNameFallback=“/Script/Engine.DemoNetDriver”)

With that in mind I thought that specifying NetDriver as an option is going to fix things, but it doesn’t, here’s how I do it:

(from create session func)

if (bCurrentSessionIsLAN)
		UGameplayStatics::OpenLevel(World, FName(*MapName), true, TEXT("listen?NetDriverName=IpDriver"));
	else
		UGameplayStatics::OpenLevel(World, FName(*MapName), true, TEXT("listen?NetDriverName=SteamDriver"));

I’m not using a dedicated server, but maybe you managed to switch between net drivers dynamically somehow?