Random partial prints and "duplex only" issues with Brother HL-2270DW

Hello everyone!

I’m experiencing issues with my printer that I’m unable to solve on my own. I use a trusty Brother HL-2270DW printer via my Wi-Fi at home. There are two issues I’m experiencing with my current configuration:

1) Random partial prints

Sometimes (randomly) only parts of a page get printed: sometimes it’s just the first few lines of a file, sometimes the upper half, sometimes the whole page. The file format doesn’t matter, e.g. the issue occurs with LibreOffice Writer odt documents, pdf files, png images… I need to print documents daily and the issue occurs regularly which is very annoying. My only workaround for now is to send the files to my phone with GSConnect and print them with the “iPrint&Scan” app provided by Brother, obviously not an ideal solution.

2) Duplex only

The printer prints multi-page documents always duplex (both sides of the paper) and plainly ignores the setting in any and every application that I print from (and setting ensurePrinters.ppdOptions.Duplex = "None"; has no effect either, see below). The only workaround is to send every single page as a separate print job.

Both problems occur regardless of whether I configure the printer declaratively via Nix or in GNOME settings. (For reference, before I switched to NixOS half a year ago, I used Fedora Silverblue and printing worked flawless back then (also no issues with the latest Live ISO of Fedora Workstation 40), so it has to be some kind of configuration that I’m doing wrong.)

I don’t know how to debug this. Any help is much appreciated!

This is the contents of my current printing.nix file (also here on GitHub):

{
  /* ---- PRINTING ---- */
  services = {
    printing = {
      enable = true; # enable CUPS
      drivers = [ pkgs.brlaser ];
    };
    avahi = {
      enable = true;
      nssmdns = true; # enable the mDNS NSS plug-in
      openFirewall = true; # open the firewall for UDP port 5353
    };
  };
  hardware.printers = {
    ensureDefaultPrinter = "HL-2270DW";
    ensurePrinters = [
      {
        name = "HL-2270DW";
        description = "Brother HL-2270DW";
        deviceUri = "ipp://192.168.2.107";
        model = "drv:///brlaser.drv/br2270dw.ppd";
        location = "Arbeitszimmer";
        ppdOptions = {
          PageSize = "A4";
          brlaserEconomode = "true";
          Duplex = "None";
        };
      }
    ];
  };
}