No Internet after rebuilding on nixos-unstable, what are my options?

Welp, I finally got a serious issue using nixos-unstable. A lot of users use it despite the name, for up-to-date packages. This is one of the worse kind of errors to have since an internet connection is crucial for troubleshooting and rebuilding nix, I feel like I’m setting up NixOS all over again.

Anyway, After rebuilding my nixos-unstable flake & then rebooting, now my ethernet doesn’t work at all and my wifi is shoddy. When I revert back to the last known working version it goes back to normal. I looked up “network manager” in nixpkgs issues: https://github.com/NixOS/nixpkgs/issues?q=networkmanager. and found a recent one about wifi delays like what I’m experiencing.

Before rebuilding, I had to disable networking.networkmanager.enable;, I found that it now enables wpa_supplicant when I had already declared iwd. I got the error message: Only one wireless daemon is allowed at the time: networking.wireless.enable and networking.wireless.iwd.enable are mutually exclusive. This is my network configuration:

      networking = {
        hostName = "NixOS-Desktop";
        # networkmanager.enable = true;
        wireless.iwd = {
          enable = true;
          settings.General.EnableNetworkConfiguration = true;
        };
      };

What should I do?

  1. Wait for the issue to get fixed? (assuming it will in a few days especially when other users are having relating issues)
  2. Use the last working generation? I want to tweak my system right now so this is very inconvenient.
  3. Any workarounds? Is there a way to rebuild my flake while staying on unstable and have my internet working?
  4. Something else?

I am not fully understanding your networking problem, but from what I understood, I would try to use the latest stable release 25.11 and use an overlay for the packages where you really need the most recent versions. With this you can mix and mash. With your Ethernet, why don’t you configure it statically (if possible) and exclude the interface name from tools like NetworkManager? To be honest, I never really understood why some people prefer using iwd. I tried it once and said no. What is your reason?

Is this your first update in a very long time? I see networkmanager module changes that could affect this only as recently as August of last year.

Either way, the networkmanager module has a wifi.backend option that defaults to wpa_supplicant. I would expect big problems with iwd if you’re not doing this somewhere:

networking.networkmanager.wifi.backend = "iwd";

Unrelated:

Any workarounds? Is there a way to rebuild my flake while staying on unstable and have my internet working?

Are you managing your config and flake.lock with version control? If so, just roll your source back to the last good version and keep on hacking while holding off on the nix flake update. If not, this is one of many reasons to start.

In the absence of a working flake.lock, you could hunt down an old working unstable version and pin it in your flake.nix with something like nixpkgs.url = "github:NixOS/nixpkgs?rev=oldhash";.

1 Like

Thank you, this worked: networking.networkmanager.wifi.backend = "iwd";.