Description

Upon Seamless Travel, the Package Map will attempt to clear out "old" entries in the Guid Cache by marking them with a timeout. The only entries that will actually be marked for a timeout are entries that point to objects that don't exist anymore (deleted dynamic objects or static objects that were unloaded).

Once this timeout has elapsed, the entries will be removed from the Net GUID Cache.

It is possible that a client may unload certain assets or delete certain objects but the server holds onto references to them (e.g., the server may keep assets loaded permanently, or may transition actors through the travel with various Seamless Travel Actor lists). This means those GUID Entries will be timed out on the client, but kept alive on the server.

Additionally, we never reset the Acknowledged states Net GUIDs on the server.

Therefore, it is possible to create a scenario in which the server attempts to replicate an Object Reference with some previously exported and acknowledged Net GUID that the Client no longer has record of, which will cause a failure on the client which could have any number of undesirable effects.

Steps to Reproduce

N/A

Have Comments or More Details?

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

7
Login to Vote

Fixed
ComponentUE - Networking
Target Fix5.0
Fix Commit17067752
Main Commit17067752
CreatedJul 13, 2020
ResolvedAug 5, 2021
UpdatedFeb 19, 2024