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 to AnswerHub just mention UE-70761 in the post.

Login to Vote

Won't Fix
Affects Versions4.214.22
CreatedFeb 28, 2019
ResolvedAug 27, 2021
UpdatedAug 27, 2021