Why does Flake wants to add nixpkgs-unstable?

I’m trying to install isd but I’m running into an issue where flake.nix keeps pulling in nixpkgs-unstable , even though I have explicitly overridden nixpkgs in my inputs. My flake.nix looks like this:

inputs = {
  nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
  ...
  isd = {
    url = "github:isd-project/isd";
    inputs.nixpkgs.follows = "nixpkgs";
  };
};

Despite this, I keep seeing nixpkgs-unstable appear in my flake.lock. I suspect that one of isd’s dependencies is introducing it, but I’m not sure how to confirm or fix this.

These are isd’s inputs

nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";

    pyproject-nix = {
      url = "github:pyproject-nix/pyproject.nix";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    uv2nix = {
      url = "github:pyproject-nix/uv2nix";
      inputs.pyproject-nix.follows = "pyproject-nix";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    pyproject-build-systems = {
      url = "github:pyproject-nix/build-system-pkgs";
      inputs.pyproject-nix.follows = "pyproject-nix";
      inputs.uv2nix.follows = "uv2nix";
      inputs.nixpkgs.follows = "nixpkgs";
    };

    systems.url = "github:nix-systems/x86_64-linux";
    nix-filter.url = "github:numtide/nix-filter";
    # pre-commit-hooks.url = "github:cachix/pre-commit-hooks.nix";
    systemd-nix = {
      url = "github:serokell/systemd-nix";
      inputs.nixpkgs.follows = "nixpkgs"; # Make sure the nixpkgs version matches
    };
    nix-appimage = {
      url = "github:ralismark/nix-appimage";
    };

What’s the best way to fully enforce my chosen nixpkgs version and prevent nixpkgs-unstable from sneaking in?

I’d like to avoid pulling different pkg versions, so my system doesn’t get into a state where there’s conflicting systemd services versions, etc. Or taking too much space for having too many packages duplicated.
Am I overreacting to this? What are the best practices?

Any insights would be greatly appreciated!

Run nix flake metadata to see what uses it. Though if you use follows, you may need to handle some breakage.