RepLayouts are associated with an Owning Object, which may be a Class, Function, or Struct.
RepLayouts will only be cleaned up when the Owning Object is no longer valid.
RepLayouts hold references to Replicated Properties.
Replicated Properties hold references to Outers.
These Outers are the Owning Objects of RepLayouts.

Therefore, RepLayouts never get cleaned up due to a circular reference.

Steps to Reproduce
  1. Create a new Blueprint class extended from Actor and set bReplicates to true.
  2. Add a replicated property.
  3. Place an instance of the Blueprint in a map.
  4. Load into the map in game and then seamless travel to another map that does not have an instance of the Blueprint.


The Blueprint Class would have no references, and would be cleaned up.


The Blueprint Class is referenced by an anonymous GCObject (the RepLayout) via its properties.

Have Comments or More Details?

There's no existing public thread on this issue, so head over toAnswerHub just mention UE-70761 in the post.

Login to Vote

Affects Versions4.214.22
Target Fix4.26
CreatedFeb 28, 2019
UpdatedFeb 11, 2020