Assertion fail on NetGUID in DataReplication under certain conditions (with repro )
Assertion failed: !ObjectNetGUID.IsDefault() && ObjectNetGUID.IsValid() [DataReplication.cpp] [Line: 248]
This occurs under the following situation:
The chance is small, and depends on networking conditions. Setting these on the server instance:
seems to give a roughly 10% chance to trigger the assertion on each level travel on the remote client. The initial travel to connect to the server seems to never trigger the assertion.
Additionally, a related warning appears immediately before the assertion is triggered:
[2016.01.11-05.22.37:579]LogNetPackageMap:Warning: GetObjectFromNetGUID: Attempt to reassign read-only guid. FullNetGUIDPath: GameplayPawn_8.TestSubobject
I have created a simple project that can reproduce the issue. There are no Blueprint assets, just two simple levels and C++ code. Download the project as a .zip
Build the project and run two instances with -game. In the instance you intend to act as a server, press H to travel to the 'gameplay' level. This instance will now be listening for clients. In the other instance, press J, which will open a connection to 127.0.0.1, joining the listen server that you started in the other instance.
In the console on the listen server, run these commands (these are the same as above):
It's only necessary to set these on the server instance, not the client.
Finally, on the server instance, press R to reload the current map. You will likely need to repeat pressing R several times before the assertion is triggered on the client instance.
Thanks for reading!
It appears that the simulated lag is affecting the replication after server travel. I have entered a ticket (UE-25208) for further investigation.
answered Jan 11 '16 at 06:34 PM
Follow this question
Once you sign in you will be able to subscribe for any updates here