So maybe sounds like crap is an overstatement, but compared to what it sounds like on windows / macos / my phone it’s not even a comparison.

Apparently this is is caused by the pulseaudio-profile being set wrong. You can check available profiles by connecting to the bluetooth headphones and running pacmd list:

        profiles:
                headset_head_unit: Headset Head Unit (HSP/HFP) (priority 20, available: unknown)
                a2dp_sink: High Fidelity Playback (A2DP Sink) (priority 10, available: no)
                off: Off (priority 0, available: yes)

When trying to set the profile, pacmd will refused (related to the available: no):

pacmd set-card-profile bluez_card.aa_bb_cc_dd_ee_ff a2dp_sink
 Failed to set card profile to 'a2dp_sink'.

According to this bug report it is caused by gdm3 hogging the profile to pulseaudio for accessibility features. Since I don’t use those, it seems like the worst deal of all deals, maybe ever. But the solution is defined in the same bug report page:

Add the following data to /var/lib/gdm3/.config/pulse/client.conf:

autospawn = no
daemon-binary = /bin/true

Chown it with the same user as the other folders. In my case it’s Debian-gdm:

chown Debian-gdm:Debian-gdm /var/lib/gdm3/.config/pulse/client.conf

Remove the pulseaudio-socket from gdm config

rm /var/lib/gdm3/.config/systemd/user/sockets.target.wants/pulseaudio.socket

The restart your computer. After restarting, your pulseaudio profiles should look like this:

        profiles:
                headset_head_unit: Headset Head Unit (HSP/HFP) (priority 20, available: unknown)
                a2dp_sink: High Fidelity Playback (A2DP Sink) (priority 10, available: unknown)
                off: Off (priority 0, available: yes)

And setting profile should work properly. Enjoy your high quality sound and lack of accessibility functionality in gdm3.