This error happens because you're keeping a pointer to a UObject that is invalid, most likely a stale pointer to an object that has already been garbage collected.
Likely reasons why this would happen:
- Keeping a pointer without UPROPERTY decorator when the object gets GC'd, and then assigning that pointer to a GC aware variable.
- During the object's final destruction during the last phase of GC (after all GC aware references have been cleared) the object should not call anything that might add a pointer to it, e.g. the object might call an overridden
FinishDestroy
that stores a pointer to that object in a GC aware variable.