Bluetooth audio constantly cutting out

Hi, my Bluetooth headphones keep cutting out constantly, making them basically unusable. This has been happening from the start, not caused by any changes I made.

What I’ve tried:

  • Started with default PipeWire setup - Bluetooth audio cuts out frequently
  • Tried switching to PulseAudio thinking it might help - same issue, audio still cuts out
  • Cleaned up the mess and went back to PipeWire properly
  • PipeWire is now running correctly
  • Bluetooth still cuts out constantly regardless of which audio server I use

Current issues:

  • Audio plays but cuts out/stutters every few seconds
  • Makes the headphones completely unusable
  • Problem occurs with both PipeWire AND PulseAudio
  • Regular wired audio works perfectly fine

Current setup:

  • PipeWire 1:1.4.9-2 with pipewire-pulse, pipewire-alsa, wireplumber all running
  • Bluetooth service active
  • ASUS N56VM laptop with GT 630M (Fermi)
garuda-inxi output here :
System:
Kernel: 6.18.1-zen1-2-zen arch: x86_64 bits: 64 compiler: gcc v: 15.2.1
clocksource: tsc avail: hpet,acpi_pm
parameters: BOOT_IMAGE=/@/boot/vmlinuz-linux-zen
root=UUID=abf2b038-780c-4028-97a0-aade9620e93a rw rootflags=subvol=@
vt.default_red=30,243,166,249,137,245,148,186,88,243,166,249,137,245,148,166
vt.default_grn=30,139,227,226,180,194,226,194,91,139,227,226,180,194,226,173
vt.default_blu=46,168,161,175,250,231,213,222,112,168,161,175,250,231,213,200
quiet loglevel=3
Desktop: KDE Plasma v: 6.5.4 tk: Qt v: N/A info: frameworks v: 6.21.0
wm: kwin_x11 vt: 2 dm: SDDM Distro: Garuda base: Arch Linux
Machine:
Type: Laptop System: ASUSTeK product: N56VM v: 1.0
serial: <superuser required>
Mobo: ASUSTeK model: N56VM v: 1.0 serial: <superuser required>
uuid: <superuser required> Firmware: UEFI vendor: American Megatrends
v: N56VM.206 date: 04/13/2012
CPU:
Info: model: Intel Core i7-3610QM bits: 64 type: MT MCP arch: Ivy Bridge
gen: core 3 level: v2 built: 2012-15 process: Intel 22nm family: 6
model-id: 0x3A (58) stepping: 9 microcode: 0x21
Topology: cpus: 1x dies: 1 clusters: 4 cores: 4 threads: 8 tpc: 2
smt: enabled cache: L1: 256 KiB desc: d-4x32 KiB; i-4x32 KiB L2: 1024 KiB
desc: 4x256 KiB L3: 6 MiB desc: 1x6 MiB
Speed (MHz): avg: 3169 min/max: 1200/3300 scaling: driver: intel_cpufreq
governor: performance cores: 1: 3169 2: 3169 3: 3169 4: 3169 5: 3169 6: 3169
7: 3169 8: 3169 bogomips: 36716
Flags-basic: avx ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Vulnerabilities: <filter>
Graphics:
Device-1: Intel 3rd Gen Core processor Graphics vendor: ASUSTeK driver: i915
v: kernel arch: Gen-7 process: Intel 22nm built: 2012-13 ports:
active: LVDS-1 empty: VGA-1 bus-ID: 00:02.0 chip-ID: 8086:0166
class-ID: 0300
Device-2: NVIDIA GF108M [GeForce GT 620M/630M/635M/640M LE]
vendor: ASUSTeK driver: nvidia v: 390.157 alternate: nouveau,nvidia_drm
non-free: series: 390.xx+ status: legacy (EOL~2022-11-22) last:
release: 390.157 kernel: 6.0 xorg: 1.21 arch: Fermi code: GF1xx
process: 40/28nm built: 2010-2016 pcie: gen: 2 speed: 5 GT/s lanes: 16
ports: active: none empty: HDMI-A-1 bus-ID: 01:00.0 chip-ID: 10de:0de9
class-ID: 0300
Device-3: Suyin UVC HD Webcam driver: uvcvideo type: USB rev: 2.0
speed: 480 Mb/s lanes: 1 mode: 2.0 bus-ID: 3-1.3:4 chip-ID: 064e:d213
class-ID: 0e02 serial: <filter>
Display: x11 server: X.Org v: 21.1.21 with: Xwayland v: 24.1.9
compositor: kwin_x11 driver: X: loaded: modesetting,nvidia dri: crocus
gpu: i915 display-ID: :0 screens: 1
Screen-1: 0 s-res: 1366x768 s-dpi: 75 s-size: 463x260mm (18.23x10.24")
s-diag: 531mm (20.91")
Monitor-1: LVDS-1 mapped: LVDS-1-1 model: AU Optronics 0x24ec built: 2011
res: mode: 1366x768 hz: 60 scale: 100% (1) dpi: 101 gamma: 1.2
size: 344x193mm (13.54x7.6") diag: 394mm (15.5") ratio: 16:9
modes: 1366x768
API: EGL v: 1.5 hw: drv: intel crocus platforms: gbm: drv: crocus
API: OpenGL v: 4.2 compat-v: 4.6.0 vendor: nvidia mesa v: 390.157
glx-v: 1.4 direct-render: yes renderer: GeForce GT 630M/PCIe/SSE2
memory: 1.95 GiB
API: Vulkan v: 1.4.335 layers: 10 device: 0 type: integrated-gpu
name: Intel HD Graphics 4000 (IVB GT2) driver: mesa intel v: 25.3.1-arch1.2
device-ID: 8086:0166 surfaces: N/A device: 1 type: cpu name: llvmpipe
(LLVM 21.1.6 256 bits) driver: mesa llvmpipe v: 25.3.1-arch1.2 (LLVM
21.1.6) device-ID: 10005:0000 surfaces: N/A
Info: Tools: api: clinfo, eglinfo, glxinfo, vulkaninfo
de: kscreen-console,kscreen-doctor gpu: nvidia-smi wl: wayland-info
x11: xdpyinfo, xprop, xrandr
Audio:
Device-1: Intel 7 Series/C216 Family High Definition Audio
vendor: ASUSTeK N56VZ driver: snd_hda_intel v: kernel bus-ID: 00:1b.0
chip-ID: 8086:1e20 class-ID: 0403
Device-2: NVIDIA GF108 High Definition Audio vendor: ASUSTeK
driver: snd_hda_intel v: kernel pcie: gen: 2 speed: 5 GT/s lanes: 16
bus-ID: 01:00.1 chip-ID: 10de:0bea class-ID: 0403
API: ALSA v: k6.18.1-zen1-2-zen status: kernel-api with: aoss
type: oss-emulator tools: alsactl,alsamixer,amixer
Server-1: PipeWire v: 1.4.9 status: active with: 1: pipewire-pulse
status: active 2: wireplumber status: active 3: pipewire-alsa type: plugin
4: pw-jack type: plugin tools: pactl,pw-cat,pw-cli,wpctl
Network:
Device-1: Intel Centrino Wireless-N 2230 driver: iwlwifi v: kernel pcie:
gen: 1 speed: 2.5 GT/s lanes: 1 bus-ID: 03:00.0 chip-ID: 8086:0887
class-ID: 0280
IF: wlp3s0 state: down mac: <filter>
Device-2: Qualcomm Atheros AR8161 Gigabit Ethernet vendor: ASUSTeK N56VZ
driver: alx v: kernel pcie: gen: 1 speed: 2.5 GT/s lanes: 1 port: d000
bus-ID: 04:00.0 chip-ID: 1969:1091 class-ID: 0200
IF: enp4s0 state: up speed: 1000 Mbps duplex: full mac: <filter>
Info: services: NetworkManager,systemd-timesyncd
Bluetooth:
Device-1: Intel Centrino Bluetooth Wireless Transceiver driver: btusb v: 0.8
type: USB rev: 2.0 speed: 12 Mb/s lanes: 1 mode: 1.1 bus-ID: 3-1.1:3
chip-ID: 8087:07da class-ID: e001
Report: btmgmt ID: hci0 rfk-id: 3 state: up address: <filter> bt-v: 4.0
lmp-v: 6 status: discoverable: no pairing: yes class-ID: 6c010c
Drives:
Local Storage: total: 698.64 GiB used: 68.73 GiB (9.8%)
SMART Message: Unable to run smartctl. Root privileges required.
ID-1: /dev/sda maj-min: 8:0 vendor: Seagate model: ST9750420AS
size: 698.64 GiB block-size: physical: 4096 B logical: 512 B speed: 3.0 Gb/s
tech: HDD rpm: 7200 serial: <filter> fw-rev: SDM1 scheme: GPT
Partition:
ID-1: / raw-size: 207.27 GiB size: 207.27 GiB (100.00%)
used: 68.7 GiB (33.1%) fs: btrfs dev: /dev/sda4 maj-min: 8:4
ID-2: /boot/efi raw-size: 100 MiB size: 96 MiB (96.00%)
used: 32.3 MiB (33.6%) fs: vfat dev: /dev/sda1 maj-min: 8:1
ID-3: /home raw-size: 207.27 GiB size: 207.27 GiB (100.00%)
used: 68.7 GiB (33.1%) fs: btrfs dev: /dev/sda4 maj-min: 8:4
ID-4: /var/log raw-size: 207.27 GiB size: 207.27 GiB (100.00%)
used: 68.7 GiB (33.1%) fs: btrfs dev: /dev/sda4 maj-min: 8:4
ID-5: /var/tmp raw-size: 207.27 GiB size: 207.27 GiB (100.00%)
used: 68.7 GiB (33.1%) fs: btrfs dev: /dev/sda4 maj-min: 8:4
Swap:
Kernel: swappiness: 133 (default 60) cache-pressure: 100 (default) zswap: no
ID-1: swap-1 type: zram size: 11.56 GiB used: 0 KiB (0.0%) priority: 100
comp: zstd avail: lzo-rle,lzo,lz4,lz4hc,deflate,842 dev: /dev/zram0
Sensors:
System Temperatures: cpu: 77.0 C mobo: N/A
Fan Speeds (rpm): cpu: 3300
Info:
Memory: total: 12 GiB available: 11.56 GiB used: 3.5 GiB (30.2%)
Processes: 289 Power: uptime: 17m states: freeze,mem,disk suspend: deep
avail: s2idle wakeups: 0 hibernate: platform avail: shutdown, reboot,
suspend, test_resume image: 4.61 GiB services: org_kde_powerdevil,
power-profiles-daemon, upowerd Init: systemd v: 258 default: graphical
tool: systemctl
Packages: pm: pacman pkgs: 1434 libs: 386 tools: octopi,paru Compilers:
clang: 21.1.6 gcc: 15.2.1 Shell: Bash v: 5.3.9 default: fish v: 4.2.1
running-in: konsole inxi: 3.3.40
Garuda (2.11.1-1):
System install date:     2025-12-10
Garuda release:          251103
Last full system update: 2025-12-17
Is partially upgraded:   No
Relevant software:       snapper NetworkManager dracut nvidia-390xx-dkms garuda-hardware-profile-standard
Windows dual boot:       Probably (Run as root to verify)
Failed units:
--- System Health Check Report ---
25/26 checks run in 2.00 seconds ⌛
Powered by garuda-health 🦅

✅ System health check passed. No issues found.

(This has been written using AI, because im very bad at English, sorry.)

(And it can’t be a Hardware issue, because on another Distro (Pop_OS!) it works perfectly fine).
This is driving me crazy does anyone have any ideas what could be causing Bluetooth audio to cut out like this?

Hi and Welcome,

maybe you need to downgrade Bluez.

Please copy and paste In the Terminal and enter:

sudo downgrade bluez

you just move up to 5.82 (arrow keys keyboard) and install this with enter. If its asking for set to ignore list say N first we dont know if it helps or not . If its installed just reboot and test it again if it makes problems.

Hi, thanks for helping, i tried to downgrade BlueZ to 5.82 then rebooted my computer as you said, and it looks like it didn’t helped, im still getting the same problem.

sadly to hear but its many stuff changed at all.

May you could tell us which headphones are in usage?

you also run older hardware so you cold try the lts kernel install over Rani may woth a trying LTS (Long time Support) with audio driver for it. sudo pacman -S linux-lts linux-lts-headers

Well, after some researching and testing some things, i tried on HSP/HFP codec, and the sound worked fine with no cutting, but when i switch back to A2DP it starts to cut out again, so now i figured out the problem but i don’t know how to solve it, i entierly reseted all Configs by deleting their folders but nothing still same problem. (And i tried using Lts but nothing)

May you need to setup a own profile for it . i didnt do that a while ago. Sounds like a buffering issue if im not wrong.

I’ll try some things out, but i don’t think i will figure out a solution any sooner :confused: and well thanks for trying to help me, have a good day

Finally, after some research i tested the bluetooth on Live Linux, and on it it seems to work properly, so i tried to load the whole OS into a VM, and i figured something out, the first boot of Garuda, we get a whole process to update a bunch of programs and by skipping this, the bluetooth remains intact, like no issue and my theory is that BlueZ 0.85 (and 0.82) totally broke the bluetooth system, but now, everything works fine i’ll continue testing to find the real culprit if like other people get same issue.

I assume that you used the same live.iso for testing as you did for your current installation. As a test, try downgrading all Bluetooth packages to the version installed before the first system update. If Bluetooth then works without issues, update each package individually to check which one is causing the problem. The relevant packages, including the original version installed from garuda-mokka-linux-zen-251103.iso, are:

bluedevil 1:6.5.1-1
bluez 5.84-1
bluez-hid2hci 5.84-1
bluez-libs 5.84-1
bluez-qt 6.19.0-1
bluez-utils 5.84-1

If this does not help you find the problematic package, you can find the list of all pre-installed packages/versions of garuda-mokka-linux-zen-251103.iso here: garuda-mokka-linux-zen-251103.pkgs.txt.

1 Like

After hours of systematic testing and package elimination, I’ve isolated the root cause of my Bluetooth audio constantly switching between A2DP and HFP profiles, which was causing persistent audio cutouts.

The culprit: kdeconnect version 25.12.0-1

Working version: 25.08.2-2

Testing methodology:

  • Used binary search to eliminate groups of packages
  • Confirmed that BlueZ, PipeWire, ALSA, and other audio/bluetooth packages were NOT the cause
  • Systematically narrowed down from ~200 packages to KDE Frameworks
  • Final isolation identified kdeconnect as the sole problematic package

Temporary fix:

sudo downgrade kdeconnect
# Selected version 25.08.2-2

After downgrading, Bluetooth audio has been stable with no cutouts. This may help others experiencing similar issues after recent KDE Plasma updates.

I generated this using AI, again but thanks for trying to help, the time was just my key :slight_smile:

2 Likes

A better solution than downgrading kdeconnect would be to disable the Bluetooth backend in the KDE Connect settings in the current version (Backends > uncheck Bluetooth), or alternatively you can add

disabled_providers=BluetoothLinkProvider

in ~/.config/kdeconnect/config.

This allows you to keep the current KDE Connect version and avoid partial upgrades, which are not supported and may cause problems.

Here is a (open) bug report related to your issue:

4 Likes

Well, i just deleted it since it’s just useless for me (i checked what was it for) but thanks for the advice

I

!

1 Like

This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.