Client pawn not getting possessed locally// begin play's not being fired

We have a multiplayer bug which only happens in shipping builds :

When a client has connected, only the server version of it’s pawn and controller fires beginplay and it seem like the client pawn isn’t possessed correctly(only the replicated client version), because it doesn’t jump to the playerpawns camera.

On the server the both the construction scripts, beginplay and other are fired in player pawn, controller, state and the pawn is possessed.
The replicated client versions of these on the other hand only fire their construction script, not any begin play events and as mentioned above, the controller possession of the client isn’t happening.

This works fine in standalone mode or build for development, but fails in a shipping build.

Anyone has experienced something similar or have any ideas of what it might be?

Notes:

  • We test this online through Steam, but they seem to connect just fine and both join the map, so we think it must be somewhere in the Unreal Multiplayer initialization.
  • This is at first connection, so no seamless travel is involved
  • We have only experienced this after 4.16

After looking through the flow, i can now see that it is only the servers playerpawn that is being constructed on the client, so there is not replication of the clients playerpawn and also no replication of the game state.

Hello, it’s been a while but, do you remember what caused this issue ?
I encounter a fairly similar case, I simplified the code to be sure it’s not something on my side, but still, it looks like the GameState doesn’t replicate on the client side, and cause the client Controller to not fire its BeginPlay event.