Suspicious programs.delta error in hm-25.05 closure

First of all, might be a stupid idea, but I batch updated my flake inputs.

The system I want to build for (an Archlinux with a good amount of home-manager managed stuff) was on home-manager 25.05 before and still is. Actually there is another system I reuse a common part of the home-manager closure as well and that runs on nixos-25.05.

I removed all unstable references so far as I had a bit of stuff from unstable as well but felt at unease mixing the branches. That removal I completed before updating the inputs.

Now when using the updated inputs to rebuild my configuration closure I always land on

error: The option programs.delta' does not exist. Definition values: - In /nix/store/s1ijzzxzz2byr91ka6q5spki2h0xv0mh-source/modules/home-manager/delta.nix’

Which is suspicious as there is not even a programs.delta in 25.05.

I temporarily removed the git module I had in use and replaced it by:

programs.git = {
        enable = true;
        delta.enable = lib.mkDefault false;
      };

That said I nowhere had explicitly used delta before.

Also I removed bat and the likes from my closure to no avail.

The delta error persists.

Maybe a kind soul can explain how I debug this mess.

It’s not really part of the closure, rather some module issue.
I’ve most-often seen this when there is a mismatch in the nixpkgs channel vs the home-manager branch.

Can you share your flake.lock and inputs in flake.nix at least? (Or channel info if you are using channels, or the corresponding lockfile if you use npins and co.)

1 Like

I should absolutely curate them:

inputs
  inputs = {
    flake-registry = {
      url = "github:NixOS/flake-registry";
      flake = false;
    };
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
    nixos-2405.url = "github:NixOS/nixpkgs/nixos-24.05";
    nixos-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
    unstable.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    latest.url = "github:NixOS/nixpkgs";    
    nixos-hardware.url = "github:NixOS/nixos-hardware";
    nixos-wsl = {
      url = "github:nix-community/nixos-wsl/release-25.05";
      inputs.nixpkgs.follows = "nixpkgs";
      inputs.flake-compat.follows = "flake-compat";
    };
    home-manager = {
      url = "github:nix-community/home-manager/release-25.05";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    deploy-rs = {
      url = "github:serokell/deploy-rs";
      inputs = {
        flake-compat.follows = "flake-compat";
        nixpkgs.follows = "unstable";
      };
    };
    treefmt-nix.url = "github:numtide/treefmt-nix";
    nps.url = "github:Tarow/nix-podman-stacks";
    agenix-rekey = {
      url = "github:oddlama/agenix-rekey";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    ghc-nixpkgs-unstable.url = "github:NixOS/nixpkgs/c792c60b8a97daa7efe41a6e4954497ae410e0c1";
    libreoffice-postscript.url = "github:NixOS/nixpkgs/eb090f7b923b1226e8beb954ce7c8da99030f4a8";
    disko.url = "github:nix-community/disko";
    disko.inputs.nixpkgs.follows = "nixpkgs";
sops-nix.url = "github:Mic92/sops-nix";
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
    flake-compat = {
      url = "github:edolstra/flake-compat";
      flake = false;
    };
    zen-browser = {
      url = "github:MarceColl/zen-browser-flake";
      inputs.nixpkgs.follows = "nixos-unstable";
    };
    catppuccin = {
      url = "github:catppuccin/nix";
    };
    devenv = {
      url = "github:cachix/devenv";
      inputs.nixpkgs.follows = "unstable";
    };
    nix-on-droid = {
      url = "github:nix-community/nix-on-droid";
      inputs.home-manager.follows = "home-manager";
      inputs.nixpkgs.follows = "nixpkgs";
      inputs.nix-formatter-pack.follows = "nix-formatter-pack";
      inputs.nmd.follows = "nmd";
    };
    org-extra-emphasis = {
      url = "github:QiangF/org-extra-emphasis";
      flake = false;
    };
    org-mode-ox-odt = {
      url = "github:kjambunathan/org-mode-ox-odt";
      flake = false;
    };
    flatpaks.url = "github:gmodena/nix-flatpak/main";
    agenix = {
      url = "github:ryantm/agenix";
      inputs.nixpkgs.follows = "nixpkgs";
      inputs.home-manager.follows = "home-manager";
    };
    agenix-cli = {
      url = "github:cole-h/agenix-cli";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    "virtual-types.nvim" = {
      flake = false;
      url = "https://github.com/jubnzv/virtual-types.nvim/archive/9ef9f31c58cc9deb914ee728b8bda8f217f9d1c7.tar.gz";
    };
    bash-git-prompt = {
      url = "github:magicmonty/bash-git-prompt";
      flake = false;
    };
    tree-setter-nvim = {
      flake = false;
      url = "github:filNaj/tree-setter";
    };
    neovim-nightly-overlay = {
      url = "github:nix-community/neovim-nightly-overlay";
    };
    nmd.url = "git+https://git.sr.ht/~rycee/nmd?ref=master";
    fenix = {
      url = "github:nix-community/fenix";
      inputs.nixpkgs.follows = "unstable";
    };
    "hledger-completion.bash" = {
      flake = false;
      url = "github:simonmichael/hledger?ref=refs/tags/hledger-1.41&dir=hledger/shell-completion";
    };
    hledger-bin = {
      flake = false;
      url = "github:simonmichael/hledger?ref=refs/tags/hledger-1.41&dir=bin";
    };
    fsread-nvim = {
      flake = false;
      url = "github:nullchilly/fsread.nvim";
    };
    symbol-usage-nvim = {
      flake = false;
      url = "github:Wansmer/symbol-usage.nvim";
    };
    eyes-wide-bright = { 
      url = "github:FractalCodeRicardo/eyes-wide-bright";
      flake = false;
    };
    ruby-nix = {
      url = "github:inscapist/ruby-nix";
    };
    bundix = {
      url = "github:inscapist/bundix/main";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    rust-overlay = {
      url = "github:oxalica/rust-overlay";
      inputs.nixpkgs.follows = "unstable";
    };
    nix-filter = {
      url = "github:numtide/nix-filter";
    };
    nix-formatter-pack = {
      url = "github:Gerschtli/nix-formatter-pack";
      inputs.nixpkgs.follows = "nixpkgs";
      inputs.nmd.follows = "nmd";
    };
    yazi-compress = {
      url = "github:KKV9/compress.yazi";
      flake = false;
    };
    yazi-plugin-bat = {
      url = "github:mgumz/yazi-plugin-bat";
      flake = false;
    };
    yamb-yazi = {
      url = "github:h-hg/yamb.yazi";
      flake = false;
    };
    ouch-yazi = {
      url = "github:ndtoan96/ouch.yazi";
      flake = false;
    };
    ouch-xplr = {
      url = "github:dtomvan/ouch.xplr";
      flake = false;
    };
    yazi = {
      url = "github:sxyazi/yazi?ref=refs/tags/shipped";
    };
    command-yazi = {
      url = "github:KKV9/command.yazi";
      flake = false;
    };
    ml_env = {
      url = "github:AlexChalk/ml_env";
      inputs.nixpkgs.follows = "unstable";
    };
    nixGL = {
      url = "github:nix-community/nixGL";
    };
    nix-index-database.url = "github:Mic92/nix-index-database";
    "deferred-clipboard.nvim" = {
      flake = false;
      url = "github:EtiamNullam/deferred-clipboard.nvim";
    };
    "filetype.nvim" = {
      url = "https://github.com/nathom/filetype.nvim/archive/b522628a45a17d58fc0073ffd64f9dc9530a8027.tar.gz";
      flake = false;
    };
    "action-hints.nvim" = {
      url = "github:roobert/action-hints.nvim";
      flake = false;
    };
    "garbage-day.nvim" = {
      url = "github:Zeioth/garbage-day.nvim";
      flake = false;
    };
    emacs-overlay = {
      url = "github:nix-community/emacs-overlay";
    };
    emacs-overlay-cached = {
      url = "github:nix-community/emacs-overlay/f148a612dbb4c29162fd61558ca10bc1b6fdc669";
    };
    sane-defaults = {
      url = "https://raw.githubusercontent.com/magnars/.emacs.d/master/settings/sane-defaults.el";
      flake = false;
    };
    frank-yazi = {
      url = "github:lpnh/frank.yazi";
      flake = false;
    };
    sensible-defaults = {
      url = "https://raw.githubusercontent.com/hrs/sensible-defaults.el/main/sensible-defaults.el";
      flake = false;
    };
    yt-dlp = {
      url = "github:yt-dlp/yt-dlp";
      flake = false;
    };
    impermanence.url = "github:nix-community/impermanence";
    talon = {
      url = "github:nix-community/talon-nix";
    };
    flake-parts = {
      url = "github:hercules-ci/flake-parts";
      inputs.nixpkgs-lib.follows = "unstable";
    };
    poetry2nix.url = "github:nix-community/poetry2nix";
    poetry2nix.inputs.nixpkgs.follows = "unstable";
    jupyenv.url = "github:tweag/jupyenv?ref=refs/pull/524/head";
    nixpkgs-ruby = {
      url = "github:bobvanderlinden/nixpkgs-ruby";
    };
    ocaml-overlay = {
      url = "github:nix-ocaml/nix-overlays";
      inputs.nixpkgs.follows = "latest";
    };
    nixd = {
      url = "github:nix-community/nixd?ref=2.0.2";
      inputs.nixpkgs.follows = "unstable";
      inputs.flake-parts.follows = "flake-parts";
    };
    org-novelist = {
      url = "github:sympodius/org-novelist";
      flake = false;
    };
    firefox = {
      url = "github:nix-community/flake-firefox-nightly";
    };
    rust-dev-template = {
      url = "github:the-nix-way/dev-templates/1117b469aa83bef9e29616b7c67d80b14beb2c14?dir=rust";
    };
    clojure-dev-template = {
      url = "github:the-nix-way/dev-templates?dir=clojure";
    };
    ocaml-dev-template = {
      url = "github:the-nix-way/dev-templates?dir=ocaml";
    };
    git-issue = {
      url = "github:dspinellis/git-issue";
      flake = false;
    };
    firefox-addons = {
      url = "gitlab:rycee/nur-expressions?dir=pkgs/firefox-addons";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    mistty = {
      url = "github:szermatt/mistty";
      flake = false;
    };
    wsl-vpnkit = {
      url = "github:sakai135/wsl-vpnkit/6845578336b5bcc3484f23dce51c4f6ac37baba6";
      flake = false;
    };
    google-chrome = {
      url = "github:r-k-b/browser-previews";
    };
    ghc-wasm-meta.url = "gitlab:ghc/ghc-wasm-meta/master?host=gitlab.haskell.org";
    zig2nix.url = "github:Cloudef/zig2nix";
    nix-ld-rs.url = "github:Mic92/nix-ld";
    bookmarks-yazi = {
      url = "github:dedukun/bookmarks.yazi";
      flake = false;
    };
    nixvim = {
      url = "github:nix-community/nixvim/nixos-25.05";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    ghciwatch = {
      url = "github:MercuryTechnologies/ghciwatch";
    };
    nvim-dd = {
      url = "github:yorickpeterse/nvim-dd";
      flake = false;
    };
    nano-emacs = {
      url = "github:rougier/nano-emacs";
      flake = false;
    };
    faster-nvim = {
      url = "github:pteroctopus/faster.nvim";
      flake = false;
    };
    deadcolumn-nvim = {
      url = "github:Bekaboo/deadcolumn.nvim";
      flake = false;
    };
    nix-inspect.url = "github:bluskript/nix-inspect";
    nixpkgs-unfree = {
      url = "github:numtide/nixpkgs-unfree";
      inputs.nixpkgs.follows = "nixpkgs";
    };
    catppuccin-yazi = {
      url = "github:catppuccin/yazi";
      flake = false;
    };
  };

flake.lock (gist on github)

I am slightly suspicious of the nix-on-droid input since I’m unsure if it’s expecting a more recent home-manager input.

The other approach would be to figure out what flake /nix/store/s1ijzzxzz2byr91ka6q5spki2h0xv0mh-source/ is. Can you check the flake.nix in that directory?

2 Likes

Thanks for your quick help on this @waffle8946, it enabled me to identify catppuccin as the flake that is behind /nix/store/s1ijzzxzz2byr91ka6q5spki2h0xv0mh-source/. By removing all usage occurrences from my flake I finally unlocked my build again.