How can I share the same level blueprint code/file between levels ?

yes that pending kill error

the first thing I tried

this should be handled internally by Unreal destroyActor function instead of having the dev worrying about it

I think the reason the DestroyActor doesn’t try to find every reference to that actor and null it is mostly because that’s a really heavy operation. When you force delete something in the editor, if it has many dependencies it can take quite a while. Doing that in game could severely wreck performance, so it’s best to allow devs to manage their references themselves usually.

yeah but I dont hold zillions of reference to my objects
there should be something like smart pointers and when it reaches a zero count it destroy the actor in a queue

Technically you’d still be having a memory reference with any form of pointer, so if this was applied to every actor it could definitely get a bit expensive for most projects. Though you definitely could implement something like this in the source if you could manage.