C# nullcheck bugged?

I have a singleton in my hierarchy that doesnt get destroyed on load. It has a reference to a monobehaviour in my scene. after i transition the scene, that referenced monobehaviour obviously gets destroyed. However, when checking for null with the is operator, it returns false, even tho the == operator returns true correctly. Is this a feature of C# that i dont know about? or is this bc that monobehaviour still floats around in memory somehow?

Destroying gameobjects doesn’t destroy their monobehaviour components if you have a reference to those monobehaviours somewhere. You cannot check if a gameobject has been destroyed that way. That’s just how unity works. You’ll need to make that singleton remove its reference OnDestroy().