No, Unreal’s garbage collection only affects UObjects. Raw pointers are your own responsibility. Did you have any luck by keeping an extra TArray to reference UObjects that are stored in your TUnion? By having them in the TArray marked UPROPERTY() it guarantees them not being garbage collected, whereas your TUnion isn’t reference counted.