Error when sudo nixos-rebuild --upgrade

I have no idea what this error means, ill drop all the info below.

ERROR: noBrokenSymlinks: the symlink /nix/store/y7js7h37vllqvw6zdgg9csl4vbdsyh55-Whitesur-icon-theme-2024-09-07/share/icons/WhiteSur/status/22/notification-display-brightness.svg points to a missing target /nix/store/y7js7h37vllqvw6zdgg9csl4vbdsyh55-Whitesur-icon-theme-2024-09-07/share/icons/WhiteSur/status/22/display-brightness-symbolic.svg
ERROR: noBrokenSymlinks: the symlink /nix/store/y7js7h37vllqvw6zdgg9csl4vbdsyh55-Whitesur-icon-theme-2024-09-07/share/icons/WhiteSur-light/status/22/notification-display-brightness.svg points to a missing target /nix/store/y7js7h37vllqvw6zdgg9csl4vbdsyh55-Whitesur-icon-theme-2024-09-07/share/icons/WhiteSur-light/status/22/display-brightness-symbolic.svg
ERROR: noBrokenSymlinks: the symlink /nix/store/y7js7h37vllqvw6zdgg9csl4vbdsyh55-Whitesur-icon-theme-2024-09-07/share/icons/WhiteSur-dark/actions/32/folder.svg points to a missing target /nix/store/y7js7h37vllqvw6zdgg9csl4vbdsyh55-Whitesur-icon-theme-2024-09-07/share/icons/WhiteSur-dark/places/32/folder.svg

...

ERROR: noBrokenSymlinks: found 4 dangling symlinks and 0 reflexive symlinks
error: builder for '/nix/store/lx5bi5dwb6jnisv4nisawkwkcbqr2cyv-Whitesur-icon-theme-2024-09-07.drv' failed with exit code 1
^Cerror (ignored): error: interrupted by the user
error: 1 dependencies of derivation '/nix/store/0afd2lr1whyzdhmw831y3wdrcf77lcnr-system-path.drv' failed to build
error: 1 dependencies of derivation '/nix/store/7viwakbpwr576bsyr5iy1zdcxwdbjf6r-nixos-system-bazinga-25.05beta749725.550e11f27ba7.drv' failed to build

config:

# Edit this configuration file to define what should be installed on
# your system. Help is available in the configuration.nix(5) man page, on
# https://search.nixos.org/options and in the NixOS manual (`nixos-help`).

{ config, lib, pkgs, ... }:

{

  # Network config

  networking.hostName = "bazinga"; # Define your hostname.
  # Pick only one of the below networking options.
  # networking.wireless.enable = true;  # Enables wireless support via wpa_supplicant.
  networking.networkmanager.enable = true;  # Easiest to use and most distros use this by default.

  # Set your time zone.
  # time.timeZone = "Europe/Amsterdam";

  # Configure network proxy if necessary
  # networking.proxy.default = "http://user:password@proxy:port/";
  # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";

  # Select internationalisation properties.
  # i18n.defaultLocale = "en_US.UTF-8";
  # console = {
  #   font = "Lat2-Terminus16";
  #   keyMap = "us";
  #   useXkbConfig = true; # use xkb.options in tty.
  # };

  # Enable the OpenSSH daemon.
  # services.openssh.enable = true;

  # Open ports in the firewall.
  # networking.firewall.allowedTCPPorts = [ ... ];
  # networking.firewall.allowedUDPPorts = [ ... ];
  # Or disable the firewall altogether.
  # networking.firewall.enable = false;

  # Graphics config

  hardware.opengl = {
    enable = true;
  };

  services.xserver = {
    enable = true;
    libinput.enable = true;
    displayManager.sddm.enable = true;
    desktopManager.plasma6.enable = true;
  };

  nixpkgs.config.allowUnfree = true;
  services.xserver.videoDrivers = [ "nvidia" ];

  hardware.graphics = {
    enable = true;
  };

  hardware.graphics.extraPackages = with pkgs; [
    intel-vaapi-driver
    intel-media-driver];

  hardware.nvidia = {
   modesetting.enable = true;
   powerManagement.enable = false;
   open = false;
   nvidiaSettings = true;
   package = config.boot.kernelPackages.nvidiaPackages.stable;
  };

  boot.kernelParams = ["i915.force_probe=7d55"];

  hardware.nvidia.prime = {
    sync.enable = true;
    nvidiaBusId = "PCI:1:0:0";
    intelBusId = "PCI:0:2:0";
  };

  # Audio config

  #  hardware.pulseaudio.enable = true;

services.pipewire = {
    enable = true;
    pulse.enable  = true;
    alsa.enable = true;
    alsa.support32Bit = true;
  };
  security.rtkit.enable = true;

  # Packages config

  environment.systemPackages = with pkgs; [
    vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
    wget
    fastfetch
    alacritty
    lshw
    pciutils
    nvitop
    brave
    rtkit
    plasma-pa
    whitesur-kde
    whitesur-icon-theme
    legcord
    firefox
    spotify
    libreoffice-qt6-fresh
    git
    gcc
    jdk23
    alacritty-theme
    gnomeExtensions.toggle-alacritty
    neofetch
    vscode
  ];

  programs.neovim = {
    enable = true;
    defaultEditor = true;
  };

  programs.steam.enable = true;
  programs.thunderbird.enable = true;

  programs.virt-manager.enable = true;
  users.groups.libvirtd.members = ["bazinga"];
  virtualisation.libvirtd.enable = true;
  virtualisation.spiceUSBRedirection.enable = true;

  # NixOS version config

  # This option defines the first version of NixOS you have installed on this particular machine,
  # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
  #
  # Most users should NEVER change this value after the initial install, for any reason,
  # even if you've upgraded your system to a new NixOS release.
  #
  # This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
  # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
  # to actually do that.
  #
  # This value being lower than the current NixOS release does NOT mean your system is
  # out of date, out of support, or vulnerable.
  #
  # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
  # and migrated your data accordingly.
  #
  # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
  system.stateVersion = "24.11"; # Did you read the comment?

  # Boot config

  boot.loader.grub.device = "nodev";
  boot.loader.grub.enable = true;
  boot.loader.efi.canTouchEfiVariables = true;
  boot.loader.grub.useOSProber = true;
  boot.loader.grub.efiSupport = true;
  boot.loader.efi.efiSysMountPoint = "/boot";
  boot.loader.systemd-boot.enable = false;

  # Automatic updating
system.autoUpgrade.enable = true;
  system.autoUpgrade.dates = "weekly";

  # Automatic build cleanup

  nix.gc.automatic = true;
  nix.gc.dates = "daily";
  nix.gc.options = "--delete-older-than 10d";
  nix.settings.auto-optimise-store = true;

  # Flake config
  nix.settings.experimental-features = ["nix-command" "flakes"];

  users.users.francis = {
    isNormalUser = true;
    description = "Bazinga";
    extraGroups = [ "wheel" ];
    shell = pkgs.bash;
    home = "/home/bazinga";
  };

  xdg.portal = {
    enable = true;
    wlr.enable = true;
  };

  swapDevices = [{
    device = "/swapfile";
    size = 16 * 1024;
  }];

  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
    ];

  # Configure x11 keymap
   services.xserver.xkb.layout = "us";

  # services.xserver.xkb.options = "eurosign:e,caps:escape";

  # Enable CUPS to print documents.
  # services.printing.enable = true;

  # Enable touchpad support (enabled default in most desktopManager).
  # services.libinput.enable = true;

  # Define a user account. Don't forget to set a password with ‘passwd’.
  #  users.users.name = {
  #   isNormalUser = true;
  #   extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
  #   packages = with pkgs; [
  #     tree
  #   ];
  #  };

  # List packages installed in system profile. To search, run:
  # $ nix search wget

  # Some programs need SUID wrappers, can be configured further or are
  # started in user sessions.
  # programs.mtr.enable = true;
  # programs.gnupg.agent = {
  #   enable = true;
  #   enableSSHSupport = true;
  # };

  # Copy the NixOS configuration file and link it from the resulting system
  # (/run/current-system/configuration.nix). This is useful in case you
  # accidentally delete configuration.nix.
  # system.copySystemConfiguration = true;

  # Set your time zone.
  # time.timeZone = "Europe/Amsterdam";

}

when ran with --keep-going:

ERROR: noBrokenSymlinks: found 4 dangling symlinks and 0 reflexive symlinks
error: builder for '/nix/store/lx5bi5dwb6jnisv4nisawkwkcbqr2cyv-Whitesur-icon-theme-2024-09-07.drv' failed with exit code 1
error: 1 dependencies of derivation '/nix/store/0afd2lr1whyzdhmw831y3wdrcf77lcnr-system-path.drv' failed to build
error: 1 dependencies of derivation '/nix/store/3qsv5l5601v09ab6267lgnv0jbqydkpb-X-Restart-Triggers-polkit.drv' failed to build
error: 1 dependencies of derivation '/nix/store/s63ggh9jyk35zr9caz7944grc4j2rfsg-dbus-1.drv' failed to build
error: 1 dependencies of derivation '/nix/store/c48ykq7994db1rfg2ixshv3yvspzpgl9-unit-accounts-daemon.service.drv' failed to build
error: 1 dependencies of derivation '/nix/store/p37n5wqdlfai3prlv49yvs5wp87zzk97-X-Restart-Triggers-dbus.drv' failed to build
error: 1 dependencies of derivation '/nix/store/lrl755vpr6hxi2073d9g0z3x0bm9wdg9-unit-polkit.service.drv' failed to build
error: 1 dependencies of derivation '/nix/store/d774hqiv0w41xqi124k741qjl6sy8kqf-unit-dbus.service.drv' failed to build
error: 1 dependencies of derivation '/nix/store/znpjgbzgar65ijf9aj24bv2hg0va3lh8-unit-dbus.service.drv' failed to build
error: 3 dependencies of derivation '/nix/store/l6qhksnli71hwigjcq1jlmfmq5jyqil9-system-units.drv' failed to build
error: 1 dependencies of derivation '/nix/store/v00hh7a95q90xb9il60vmxp0npl73s28-user-units.drv' failed to build
error: 4 dependencies of derivation '/nix/store/ihr8bgzj6l5msbs8jjcbaxkyfdmcg39g-etc.drv' failed to build
error: 2 dependencies of derivation '/nix/store/7viwakbpwr576bsyr5iy1zdcxwdbjf6r-nixos-system-francisnixos-25.05beta749725.550e11f27ba7.drv' failed to build

Considering whitesur-icon-theme builds fine on my end, I’m assuming you have store corruption; try sudo nix-store --repair --verify --check-contents.

Also, remove gcc from your system packages, it’s useless to you there. (Compilers and libraries do not go in your user or system package lists.) When doing development, create a shell.nix at that time per project; see Declarative shell environments with shell.nix — nix.dev documentation.

I ran that, got rid of gcc then ran sudo nixos-rebuild switch --upgrade and still got the same error. I also ran it with --keep-going, I added it to the post

Ah, I wasn’t testing on a recent-enough commit it seems.
It fails to build on nixos-unstable (550e11f27ba790351d390d9eca3b80ad0f0254e7) and master (2ffa0d97407c194c852fece273215230db1df4cf).

Report it here: https://github.com/NixOS/nixpkgs/issues

There’s also Build failure: bitwarden-cli and swagger-cli (nodejs: noBrokenSymlinks) · Issue #380227 · NixOS/nixpkgs · GitHub which may be related?

got it, I really like this icon pack so I feel like waiting until its fixed rather than removing it. Is this risky?

You could clean up the broken symlinks yourself in postInstall or preFixup.
For example:

ERROR: noBrokenSymlinks: the symlink
/nix/store/yfsx3ffqbil626gb5ba1al21ric11405-Whitesur-icon-theme-2024-09-07/share/icons/WhiteSur/actions/32/folder.svg
points to a missing target
/nix/store/yfsx3ffqbil626gb5ba1al21ric11405-Whitesur-icon-theme-2024-09-07/share/icons/WhiteSur/places/32/folder.svg

where .../places/ doesn’t have a directory called 32, so the symlink is dangling.
Ultimately this is upstream’s fault:

You would therefore have to remove the symlink by replacing whitesur-icon-theme with an override like this:

  (whitesur-icon-theme.overrideAttrs (oldAttrs: {
    preFixup = (oldAttrs.preFixup or "") + ''
      rm $out/share/icons/WhiteSur/actions/32/folder.svg
      # clean up other dangling symlinks here...
    '';
  }))

I didn’t test this to confirm it works, this is just the approach I would try.

1 Like

I just installed the whitesur theme which includes the icons which is honestly the easier fix rn. I’ll keep this open for the github. ty for your help!

I got it working with the following snippet (thanks @waffle8946):

(pkgs.whitesur-icon-theme.overrideAttrs (oldAttrs: {
                    preFixup = (oldAttrs.preFixup or "") + ''
                    rm $out/share/icons/WhiteSur/actions/32/folder.svg
                    rm $out/share/icons/WhiteSur-dark/actions/32/folder.svg
                    rm $out/share/icons/WhiteSur/status/22/notification-display-brightness.svg
                    rm $out/share/icons/WhiteSur-light/status/22/notification-display-brightness.svg
                    '';
                  }));