More specifically, issues for one distro (or maybe family of distros if applicable) and not other distros.
I’ll start: NixOS. I love how I can have my whole operating system configuration defined deterministically with configuration files, but what I believe is a serious flaw, is when you choose the “unstable” channel, the channel for receiving the latest packages rather than ones up to 6 months old: stable. Unstable package often build dependencies on device, and I’ve often faced build failures, why are new package versions given if they fail to build?!
Why can’t Nixpkgs backend ensure that new package versions build successfully before shipping them to end users?! It would take a lot of work to do so, but I can’t think of any other distros that have this problem: where installing a new package version that came out a few days or even a week ago, has a chance of failing after its made available in the distro’s official package manager.
There are a handful of workarounds for your NixOS configuration in this case, but it happens too often for me and I shouldn’t have to edit my config for to work around it.


The
nixos-unstablechannel actually does ensure a minimum set of required packages work: Those that would prevent you from booting. The compiling-from-source is because Hydra (the binary cache) only starts building once a package appears innixpkgs-unstable, and if it immediately proceeds intonixos-unstable, or one of its dependencies is different there, that build won’t be finished yet.release-and versionednixos-don’t have that problem, as they have a merge freeze, and are mostly fast-forwarded along unstable.What would be good is a mechanism for Hydra to tell you “I tried to build this derivation, and it failed.” For this, Nix first needs to store build failure, and since store paths are input-addressed by default, you can also skip builds that will certainly still fail.