Bluetooth headphones disconnect randomly with pipewire installed

Hi, my Bluetooth headphones automatically get disconnected every several minutes, and then it will slowly reconnect after like 4 minutes. Sometimes when it reconnects, the profile of my Bluetooth headphones in settings gets changed from High Fidelity Playback (A2DP Sink, codec AAC) to one of the Headset Head Unit (HSP/HFP), making the audio quality very poor. This in turn forces me to manually disconnect the headset and reconnect it.

When I checked journalctl (via journalctl -e), I noticed these error messages in regard to the times when the headset disconnects:

pipewire-media-session[980]: spa.bluez5.sink.media: 0x560a43727fa8: error 24
bluetoothd[577]: src/profile.c:ext_io_disconnected() Unable to get io data for Hands-Free Voice gateway: getpeername: Transport endpoint is not connected (107)
pipewire-media-session[980]: spa.bluez5: Failed to release transport /org/bluez/hci0/dev_38_F3_2E_CE_70_33/sep2/fd6: Method "Release" with signature "" on interface "org.bluez.MediaTransport1" doesn't exist

Furthermore, after some time, it would also produce these errors:

bluetoothd[577]: profiles/audio/avdtp.c:avdtp_connect_cb() connect to 38:F3:2E:CE:70:33: Connection refused (111)
pipewire-media-session[980]: spa.bluez5.native: RFCOMM receive command but modem not available: AT+NREC=0

Any leads/help? thank you very much in advance!