Qubes 4.3: pipewire-qubes fails to create sink when audiovm != dom0 (Dummy Output only)

Goal
I am attempting to use my Bluetooth headphones (Sony WH-1000XM5) on Qubes 4.3.0 by routing audio from AppVMs through sys-usb. The goal is to keep the BlueZ stack out of dom0 while maintaining HDMI/internal audio as the default in dom0.

Setup
Hardware: Intel AX211 (BT) passed through to sys-usb.
AudioVM: sys-usb (Debian-13-xfce cloned template).
Packages:

  • Client (untrusted): pipewire-qubes 4.3.15-1+deb13u1
  • AudioVM (sys-usb): qubes-audio-daemon 4.3.15-1+deb13u1, bluez, pipewire-audio

Configuration:
qvm-prefs untrusted audiovm sys-usb
qvm-features sys-usb audio-receiver 1
qvm-tag sys-usb add audiovm-sys-usb
service.minimal-usbvm is unset in sys-usb to allow BlueZ services.

Current State

  • Bluetooth is functional in sys-usb - headphones pair
  • Client-side Metadata: untrusted correctly identifies the target.
    • qubesdb-read /qubes-audio-domain-xid returns 14 (matches sys-usb).
    • pw-cli info 0 shows org.qubes-os.audio-domain-xid = “14”.
  • Module Load: libpipewire-module-qubes is loaded in the client (verified via pw-cli list-objects Module).

The Problem
Despite the correct XID and the module being loaded, no “Qubes Virtual Audio Sink” is created in the client qube. wpctl status only shows “Dummy Output”.

There are no connection attempts visible in the qubesd journal in dom0, and no specific error messages in the client’s journalctl --user -u pipewire. It appears the vchan handshake is failing silently or the module is not attempting the connection.

What I’ve Tried

  • Policy: Created /etc/qubes/policy.d/30-sys-audio.policy with allow for qubes.AudioOutput and qubes.AudioInput targeting @tag:audiovm-sys-usb.
  • Groups: Added user to the audio group in the sys-usb template.
  • Restart Sequence: Ensured sys-usb is fully running with BT connected before starting the client qube.
  • Testing dom0: If I set audiovm back to dom0, the “Qubes Virtual Audio Sink” appears immediately and audio works.

Questions

  • Is there a known regression in pipewire-qubes 4.3.15 regarding non-dom0 AudioVMs?
  • Are there additional qubesdb flags or qvm-features required in 4.3 to authorize the vchan connection between two AppVMs?
  • How can I increase the verbosity of libpipewire-module-qubes to see why the sink creation is being skipped?

Any insights would be greatly appreciated!