Read access violation in ConditionalBeginDestroy()

The C++ portion of the debugger seems to think everything is ok, but the call location is clearly in data. I have the memory window set to rax+80h. This is all built with Debug Editor in VS2015.

The object in question is a DBCharacter, which is a UObject derived class with several uint64 properties I set through the fancy C++ reflection stuff. The values come out of a sqlite3 db. The UObject is made via StaticAllocateObject and stored in a TArray in my game instance class. Changing the EObjectFlags can affect when this crash occurs.

The way I reach this usually is my game instance Init() calls OnlineSubsystem’s Identity Interface AutoLogin(), which fires off my login complete delegate, which opens the DB and reads the character list based on the SteamID.

Soon after garbage collection kicks in as a result of loading the map and down it goes.

If I set the StaticAllocateObject’s EObjectFlags to RF_RootSet the game runs awhile then hits the same exception on close (as one would expect).