Multiplayer connections fail with 'userId: Invalid'

I’m attempting to use the vanilla UE4 3rd Person C++ Template project to test multiplayer connectivity. I’ve followed the Blueprint scripting tutorial videos, and it appears that the 3rd Person Template is more or less ready to accept multiplayer connections out-of-the-box. Sure enough, I can setup 2 players locally when testing via the editor, but when attempting to have a ‘real’ multiplayer session users are unable to connect.

Checking the Output Log shows that other players are able to connect to my listen server instance, and even appear momentarily on the server-side, but then disappear. The following (incredibly vague) error is logged:


LogNet: Login request: /Game/Maps/Example_Map userId: Invalid

To setup connections I’m using the following console command:


open Example_Map?listen

And having users connect via:


open MY_PUBLIC_IP_ADDRESS

It makes no difference whether these commands are entered in-game, or via shortcuts and command line arguments. The results are the same. I’m running a Mac build as the listen server, and the test user is connecting via Windows, although I’m fairly certain this shouldn’t make a difference.

In summary: using the vanilla 3rd Person Template with no modifications I’m unable to host multiplayer games over the Internet. Users connect and appear for a brief second before disappearing, with a log on the server reading that their userId was invalid.

It turns out this was a UE4 bug (present in 4.6.1) that would cause ID mismatches between Windows and Mac builds. It’s apparently been addressed in 4.7, but can be worked around by adding the following to DefaultEngine.ini:

[ConsoleVariables]
net.IgnorePackageMismatch=1