OnDisable calls singleton instance, creates unwanted object + errors

So I’m just having one of those mornings, not quite grasping the best way around this.

My singleton instance invokes events to which other things subscribe. Subscribers subscribe to those events through the singleton’s instance.

When I exit play mode, my subscribers call their OnDisable methods to unsubscribe, but evidently the singleton instance has already been destroyed by this point, so a new instance is created.

I figured I’d just add a DontSave hideflag to the singleton instance when it is lazy-created, but the object persists once play mode has been exited. Therefor I end up with errors immediately (before playmode has fully exited) because of null references, and must delete the unwanted instance from the scene.

I know there’s gotta be a clever way I can still use this design pattern, but I’m not caffeinated enough to see it. Any suggestions would be great!

ps: my singletons are monobehaviors to conveniently expose them to the inspector

Without code it is just hard to provide proper solution but you can check from your subscribers if your singleton is present or not and if it is not present then it does not need to call the unsubscribe itself since it is just gonna be useless.