Description

Following this sequence of events, the ObjectLookup and NetGUIDLookup on the server's PackageMapClient will end up in a bad state. In the ObjectLookup Map, the primary asset's package will be mapped to a different NetGUID than in the NetGUIDLookup map.
When the server first loads the package, it will assign a NetGUID to this package.
After the asset has been unloaded and garbage collection is performed on the server, the package's NetGUID will be mapped to a null object in the NetGUIDLookup map.
Upon reloading the asset and spawning a new actor, a new NetGUID will be associated with the reloaded package.
However, when the client reloads the package and sends a RPC with the class as a parameter, the server's NetGUIDLookup map will associate the asset's package with the old NetGUID, which appears to be sent from the client.
See attached log files for more information.

Steps to Reproduce

On a listen server and client (does not reproduce in single-process PIE):
1. Have the listen server load a primary asset on demand and create a replicated actor of this class.
2. Have the client load the asset and send a RPC with a reference to this class as a parameter, in order to have the server spawn another actor of this class.
3. Have the listen server destroy the actors, and have both the client and server unload this asset.
4. Perform garbage collection on the listen server.
5. Have the listen server again load the asset and spawn an actor.
6. Once again, have the client load the asset and send the RPC telling the server to spawn another actor of this class.
7. Perform a seamless travel.

See linked repro project.

Have Comments or More Details?

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

0
Login to Vote

Unresolved
ComponentUE - Networking
Affects Versions5.6
Target Fix5.7
CreatedMay 7, 2025
UpdatedMay 14, 2025
View Jira Issue