Bluetooth audio broken after recent update - Likely LDAC + PipeWire 1.6.2

After a nixos-rebuild switch my Bluetooth headset (Sony XM4) stopped producing audio entirely, despite connecting successfully.

What changed:

  • PipeWire: 1.4.10 → 1.6.2
  • WirePlumber: 0.5.13 → 0.5.14
  • LDAC decoder library pulled in

What I think is happening:
LDAC decoder library (libldac-dec) causes PipeWire to advertise and attempt LDAC codec negotiation with Bluetooth devices. The decoder fails immediately with a fatal error and — rather than falling back to SBC or AAC — audio silently stops working.

How to confirm:
Run this and look for repeated LDAC errors:

journalctl --user -u wireplumber -n 50 | grep -i ldac

If you see LDAC decoder initialization failed: LDACBT_ERR_FATAL repeating, this is your issue.

Fix:
Add this to your configuration.nix to explicitly whitelist working codecs and exclude LDAC:

services.pipewire.wireplumber.extraConfig = {
  "bluetooth" = {
    "monitor.bluez.properties" = {
      "bluez5.codecs" = [ "sbc" "sbc_xq" "aac" "aptx" "aptx_hd" ];
    };
  };
};

Then run sudo nixos-rebuild switch and reconnect your headset.

If you’d rather not touch your config, rolling back to the previous generation works too: select it from the GRUB menu on boot, then run sudo nixos-rebuild switch --rollback to make it permanent.

1 Like

This was fixed in libldac-dec: fix decoder initialization failure by qweered · Pull Request #502690 · NixOS/nixpkgs · GitHub
I was having the same issue, so I pulled the patch from there and applied it by overriding services.pipewire.package and services.pipewire.wireplumber.package.