Can someone explain me this behavior and how to deal with it? I have an object with a while(true) loop in a coroutine that is started either a) in Start() or b) in OnLevelWasLoaded, called by the GameManager (FindObjectsOfType<XY>()) in scenario a) I do not get exceptions when I restart the level in scenario b) I do [MissingReferenceException: The object of type 'GameObject' has been destroyed but you are still trying to access it.] It occurs on different scripts so I don't think it has to do with what is inside the while(true) loop. Nothing is wrong ingame, everything looks fine but I get these exceptions. And since I want to synchronize all my coroutine starts from the GameManager, I use the behavior of b) which causes exceptions. Can someone shed light onto this?