The object is being deleted by the game engine, there is no way to avoid that. I considered iterating over all the variables, but i know that's expensive.
We have an object type (EHandle) that stores handles to these objects and can tell when it has been deleted, the only problem is that script writers might stores handles to the object themselves.
I don't suppose there's any way to disallow the usage of handles to reference types in certain situations? Though, even if it were possible to disable storage of handles in non-local variables, we use member variable handles in certain situations where we control the lifetime of the class that stores them.
All we can realistically do is encourage the use of the EHandle type, if writers use raw handles and the game crashes, there's nothing we can do.