Alright, this is officially the strangest, and most terrifying bug I’ve ever encountered in over a decade of working with Unity.
Just now, Unity crashed. No big deal, it happens. I save my scene before entering Play mode as a matter of habit to avoid losing work or having to mess around with backup scenes in times like this. I didn’t get a ‘crash report’ popup which is a bit strange, but whatever. The crash was just an instant “oop the app is closed now”, no hang or beachball or anything.
I opened up Unity and…my scene is different. Quite different. All the work I’ve done over the last two days of work has been reverted. Which is itself not a huge deal, that’s what version control is for, after all. However this frankly terrifies me. I checked, and triple-checked, thinking I must be mistaken. There’s only one scene in my project, I don’t have an old version. I didn’t accidentally revert any changes in git. All the other files in the project were untouched.
Unity seems to have stored an old version of my scene and just…overwrote my scene with that old version upon reopening???
I just want to reiterate that because I can’t stress enough how serious I think this is:
Unity overwrote a saved version of my scene with an older version of that same scene that it had stored internally somewhere, without notifying me. It just…permanently overwrote the scene file on disk.
This really scares me because I generally like my git commits to happen either at the end of a workday, or when completing a discrete unit of work. This bug could feasibly lose me a full day of work, at any moment. I can also imagine someone on the team who doesn’t know about this might not even realise the scene has been reverted, introducing really nasty bugs if they aren’t caught in version control diffs.
What the hell is going on here? Has anyone else ever experienced anything like this?
I feel like if saving a scene doesn’t save the scene, how can I have confidence that Unity won’t just crash and permanently, irreversibly lose work at any moment? Even losing 30 minutes of work in this way is a massive issue.