I just had NixOS break in a weird way for me. Ok, it was more that Gnome 42.4 broke the wsmatrix extension, which caused Gnome to shit itself[1] on login.
It's a little bit of a double edged sword. NixOS lets me use pretty much straight upstream packages, which sometimes break due to not having thorough integration testing like a traditional distro would. On the other hand, I was able to just boot up an older configuration to get back to functional, and that let me figure out wtf was wrong.
To be fair, this would also happen on any other OS that's tracking upstream changes. It sounds like you might be using nixos-unstable, which is unfortunately susceptible to those problems. Like colordrops said though, rolling back your OS is a thankfully a cinch. Even if someone managed to rm -rf / your box, a fresh reinstall with your complete dev environment is less than 10 minutes away, if your internet connection can keep up.
That's a very reasonable conclusion, it is technically GNOME's fault for refusing to implement a stable extensions API after nearly a decade of breakage.
> On the other hand, I was able to just boot up an older configuration to get back to functional, and that let me figure out wtf was wrong.
I would count this as not breaking. I mean... on most systems, you are borked if an upgrade fails and now need to boot a live CD. I've never had that happen on NixOS. I had it happen only once, and that was due to a bad ZFS setting that the OS couldn't possibly have fixed (weird BIOS thing where the SATA drives came up incorrectly).
Assuming you are just rebooting after upgrading, and it broke, the bootup screen allows you to choose an earlier generation to boot, so you will be right back at a functional system with zero effort. You can then go to your config and roll back that change.
It's a little bit of a double edged sword. NixOS lets me use pretty much straight upstream packages, which sometimes break due to not having thorough integration testing like a traditional distro would. On the other hand, I was able to just boot up an older configuration to get back to functional, and that let me figure out wtf was wrong.
[1]: https://github.com/mzur/gnome-shell-wsmatrix/issues/236