You are not logged in.
I was originally going to report an issue wherein my entire system froze (TTY terminals were not even available) when I connected to my wireless headphones via Bluetooth on GNOME, but I actually managed to successfully debug that issue. Turns out it was the GSConnect extension that was the culprit. But given my original post was going to mention that I could not connect to Bluetooth via blueman-manager or bluetoothctl, I thought I should still report this and request your help. I will focus on bluetoothctl as it is easier to report on my attempts to use it. With blueman-manager, when I do get errors they are usually pretty similar to bluetoothctl's.
When I use bluetoothctl to connect to my wireless headphones, I get these sorts of predictable outputs:
> power on
[CHG] Controller 8A:88:4B:E0:37:34 PowerState: off-enabling
Failed to set power on: org.bluez.Error.Failed
[CHG] Controller 8A:88:4B:E0:37:34 PowerState: on
> scan on
SetDiscoveryFilter failed: org.bluez.Error.NotReady
Failed to start discovery: org.bluez.Error.NotReady
> connect <MAC_ADDRESS>
Attempting to connect to <MAC_ADDRESS>
Failed to connect: org.bluez.Error.NotReady br-connection-adapter-not-powered
And if you are wondering:
systemctl status bluetooth
returns
● bluetooth.service - Bluetooth service
Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; preset: disabled)
Active: active (running) since Sat 2025-10-11 22:11:54 AEST; 12min ago
Invocation: 0618df9928ed49729c0a7554675407fd
Docs: man:bluetoothd(8)
Main PID: 655 (bluetoothd)
Status: "Running"
Tasks: 1 (limit: 76893)
Memory: 3M (peak: 4.3M)
CPU: 159ms
CGroup: /system.slice/bluetooth.service
└─655 /usr/lib/bluetooth/bluetoothd
Oct 11 22:16:58 archlinux bluetoothd[655]: Endpoint registered: sender=:1.144 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_1
Oct 11 22:16:58 archlinux bluetoothd[655]: Endpoint registered: sender=:1.144 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_0
Oct 11 22:16:58 archlinux bluetoothd[655]: Endpoint registered: sender=:1.144 path=/MediaEndpoint/A2DPSource/faststream
Oct 11 22:16:58 archlinux bluetoothd[655]: Endpoint registered: sender=:1.144 path=/MediaEndpoint/A2DPSource/faststream_duplex
Oct 11 22:16:58 archlinux bluetoothd[655]: Endpoint registered: sender=:1.144 path=/MediaEndpoint/A2DPSink/opus_05
Oct 11 22:16:58 archlinux bluetoothd[655]: Endpoint registered: sender=:1.144 path=/MediaEndpoint/A2DPSource/opus_05
Oct 11 22:16:58 archlinux bluetoothd[655]: Endpoint registered: sender=:1.144 path=/MediaEndpoint/A2DPSink/opus_05_duplex
Oct 11 22:16:58 archlinux bluetoothd[655]: Endpoint registered: sender=:1.144 path=/MediaEndpoint/A2DPSource/opus_05_duplex
Oct 11 22:17:16 archlinux bluetoothd[655]: Failed to set mode: Authentication Failed (0x05)
Oct 11 22:22:40 archlinux bluetoothd[655]: Failed to set mode: Authentication Failed (0x05)
I have looked this error up and found advice to run:
rfkill list
which returns
0: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
I have also tried restarting bluetooth and I still get the above outputs when I run bluetoothctl. Any suggestions for how to fix this?
Last edited by fusion809 (2025-10-14 02:03:39)
Offline
Failed to set mode: Authentication Failed (0x05)
Bluetooth will only work under GNOME
what is then "not-gnome" specifically?
Degenerated session? Lacking some polkit agent?
Edit: https://wiki.archlinux.org/title/Bluetooth#Pairing - try "agent KeyboardOnly" first
Last edited by seth (2025-10-11 13:19:43)
Offline
I have tried Hyprland, Xfce, i3, Cinnamon and UKUI. Apologies for not specifying, I did not think it was relevant given that under each I resort to using the tools I mentioned to connect to Bluetooth, namely bluetoothctl and blueman-manager. Degenerated session? What do you mean by that? As for polkit, I have tried adding this line, per ChatGPT's suggestion, to my hyprland.conf:
exec-once = /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
and it did not fix this error.
Offline
I just implemented your suggested fix; I ran "agent KeyboardOnly" before running the other commands. It returned:
Agent is already registered
The commands I specified in my original post returned the same output as I mentioned in my original post. I don't know if this is relevant, but I also get /dev/tpm0 and /dev/tpmrm0 start jobs failing whenever I boot my system. I have since I first installed Arch, however.
Offline
I'm less than sure that the gnome polkit agent will work outside a gnome session, https://wiki.archlinux.org/title/Polkit … ion_agents
Degenerated sessions happen if the session detaches from the session bus (by using dbus-launch etc)
echo $DBUS_SESSION_BUS_ADDRESS
loginctl session-status
Offline
echo $DBUS_SESSION_BUS_ADDRESS
returns
unix:path=/run/user/1000/bus
loginctl session-status
returns
Since: Sat 2025-10-11 23:32:15 AEST; 23min ago
State: active
Leader: 835 (lightdm)
Seat: seat0; vc8
Display: :0
Remote: no
Service: lightdm
Type: wayland
Class: user
Desktop: hyprland
Idle: no
Unit: session-2.scope
├─ 835 lightdm --session-child 13 20
├─ 978 /usr/bin/ksecretd --pam-login 3 4
├─ 979 Hyprland
├─ 1046 waybar
├─ 1049 /usr/bin/python /usr/bin/blueman-applet
├─ 1052 cat
├─ 1053 cat
├─ 1055 /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1
├─ 1065 Xwayland :0 -rootless -core -listenfd 67 -listenfd 68 -displayfd 96 -wm 93
├─ 1102 /opt/google/chrome/chrome_crashpad_handler --monitor-self --monitor-self-annotation=ptype=crashpad-handler "--database=/home/fusion809/.config/google-chrome/Crash Reports" --url=https://clients2.>
├─ 1111 /opt/google/chrome/chrome_crashpad_handler --no-periodic-tasks --monitor-self-annotation=ptype=crashpad-handler "--database=/home/fusion809/.config/google-chrome/Crash Reports" --url=https://clie>
├─ 1131 "/opt/google/chrome/chrome --type=zygote --no-zygote-sandbox --crashpad-handler-pid=1102 --enable-crash-reporter=, --change-stack-guard-on-fork=enable"
├─ 1133 "/opt/google/chrome/chrome --type=zygote --crashpad-handler-pid=1102 --enable-crash-reporter=, --change-stack-guard-on-fork=enable"
├─ 1147 "/opt/google/chrome/chrome --type=zygote --crashpad-handler-pid=1102 --enable-crash-reporter=, --change-stack-guard-on-fork=enable"
├─ 1210 /usr/bin/python /usr/bin/blueman-tray
├─ 1220 "/opt/google/chrome/chrome --type=gpu-process --ozone-platform=wayland --render-node-override=/dev/dri/renderD128 --crashpad-handler-pid=1102 --enable-crash-reporter=, --change-stack-guard-on-for>
├─ 1226 "/opt/google/chrome/chrome --type=utility --utility-sub-type=network.mojom.NetworkService --lang=en-GB --service-sandbox-type=none --render-node-override=/dev/dri/renderD128 --crashpad-handler-pi>
├─ 1243 "/opt/google/chrome/chrome --type=utility --utility-sub-type=storage.mojom.StorageService --lang=en-GB --service-sandbox-type=utility --render-node-override=/dev/dri/renderD128 --crashpad-handler>
├─ 1269 "/opt/google/chrome/chrome --type=broker"
├─ 1346 "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1102 --enable-crash-reporter=, --extension-process --change-stack-guard-on-fork=enable --ozone-platform=wayland --lang=en-GB --nu>
├─ 1360 "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1102 --enable-crash-reporter=, --extension-process --change-stack-guard-on-fork=enable --ozone-platform=wayland --lang=en-GB --nu>
├─ 1375 "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1102 --enable-crash-reporter=, --extension-process --change-stack-guard-on-fork=enable --ozone-platform=wayland --lang=en-GB --nu>
├─ 1391 "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1102 --enable-crash-reporter=, --extension-process --change-stack-guard-on-fork=enable --ozone-platform=wayland --lang=en-GB --nu>
├─ 1424 "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1102 --enable-crash-reporter=, --extension-process --change-stack-guard-on-fork=enable --ozone-platform=wayland --lang=en-GB --nu>
├─ 1567 "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1102 --enable-crash-reporter=, --extension-process --change-stack-guard-on-fork=enable --ozone-platform=wayland --lang=en-GB --nu>
├─ 1577 "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1102 --enable-crash-reporter=, --extension-process --change-stack-guard-on-fork=enable --ozone-platform=wayland --lang=en-GB --nu>
├─ 1652 "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1102 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --ozone-platform=wayland --lang=en-GB --num-raster-threads=4 ->
├─ 3321 "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1102 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --ozone-platform=wayland --lang=en-GB --num-raster-threads=4 ->
├─ 3401 "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1102 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --ozone-platform=wayland --lang=en-GB --num-raster-threads=4 ->
├─ 3410 "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1102 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --ozone-platform=wayland --lang=en-GB --num-raster-threads=4 ->
├─ 3428 "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1102 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --ozone-platform=wayland --lang=en-GB --num-raster-threads=4 ->
├─ 3454 "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1102 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --ozone-platform=wayland --lang=en-GB --num-raster-threads=4 ->
├─ 3474 "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1102 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --ozone-platform=wayland --lang=en-GB --num-raster-threads=4 ->
├─ 3485 "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1102 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --ozone-platform=wayland --lang=en-GB --num-raster-threads=4 ->
├─ 3547 "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1102 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --ozone-platform=wayland --lang=en-GB --num-raster-threads=4 ->
├─ 3620 "/opt/google/chrome/chrome --type=renderer --crashpad-handler-pid=1102 --enable-crash-reporter=, --change-stack-guard-on-fork=enable --ozone-platform=wayland --lang=en-GB --num-raster-threads=4 ->
├─ 3683 kitty
├─ 3687 /usr/bin/kitten __atexit__
Offline
usr/bin/python /usr/bin/blueman-applet
Remove that.
Offline
Done. I had added blueman-applet to my hyprland.conf per a suggestion by ChatGPT in my own efforts to fix this error. But it is now removed. It hasn't fixed this error.
Offline
"I just followed ChatGPT orders" is not the excuse you think it is
Don't log into any GUI session, swicth to TTY2 (ctrl+alt+F2), login there and attempt to power the device up - you'll most likely have to "agent KeyboardOnly" and "default-agent"
Offline
I am happy to use any reasonable suggestions I can get. Even suggestions that seem pretty unlikely to work, in my opinion. Like your idea of using a TTY2 terminal seemed pretty unlikely to work to me, but I still tried it. It failed with the same errors as before. It's like my old IT teacher once said, with computers we sometimes attempt solutions that don't make sense just because sometimes they work.
Last edited by fusion809 (2025-10-11 14:58:48)
Offline
The uninterrupted attempt from a vanilla state is actually the most likely to succeed because nothing else is tampering w/ the device…
So how exactly do you configure bluetooth on gnome? bluetoothctl just works?
Do you still get the "Failed to set mode: Authentication Failed (0x05)" from bluetoothd?
Offline
On GNOME, I use the Bluetooth section of the GNOME settings app to configure Bluetooth. Great question! I should have thought to look at it myself before now, but
systemctl status bluetooth
returns:
● bluetooth.service - Bluetooth service
Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; preset: disabled)
Active: active (running) since Sun 2025-10-12 00:02:43 AEST; 1h 16min ago
Invocation: a1fa02b547cb4c339807470db21edf44
Docs: man:bluetoothd(8)
Main PID: 665 (bluetoothd)
Status: "Running"
Tasks: 1 (limit: 76886)
Memory: 3M (peak: 4.6M)
CPU: 388ms
CGroup: /system.slice/bluetooth.service
└─665 /usr/lib/bluetooth/bluetoothd
Oct 12 00:50:54 archlinux bluetoothd[665]: Endpoint registered: sender=:1.402 path=/MediaEndpoint/A2DPSource/aptx_ll_0
Oct 12 00:50:54 archlinux bluetoothd[665]: Endpoint registered: sender=:1.402 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_1
Oct 12 00:50:54 archlinux bluetoothd[665]: Endpoint registered: sender=:1.402 path=/MediaEndpoint/A2DPSource/aptx_ll_duplex_0
Oct 12 00:50:54 archlinux bluetoothd[665]: Endpoint registered: sender=:1.402 path=/MediaEndpoint/A2DPSource/faststream
Oct 12 00:50:54 archlinux bluetoothd[665]: Endpoint registered: sender=:1.402 path=/MediaEndpoint/A2DPSource/faststream_duplex
Oct 12 00:50:54 archlinux bluetoothd[665]: Endpoint registered: sender=:1.402 path=/MediaEndpoint/A2DPSink/opus_05
Oct 12 00:50:54 archlinux bluetoothd[665]: Endpoint registered: sender=:1.402 path=/MediaEndpoint/A2DPSource/opus_05
Oct 12 00:50:54 archlinux bluetoothd[665]: Endpoint registered: sender=:1.402 path=/MediaEndpoint/A2DPSink/opus_05_duplex
Oct 12 00:50:54 archlinux bluetoothd[665]: Endpoint registered: sender=:1.402 path=/MediaEndpoint/A2DPSource/opus_05_duplex
Oct 12 00:54:34 archlinux bluetoothd[665]: /org/bluez/hci1/dev_00_A4_1C_F5_00_63/sep1/fd2: fd(43) ready
on GNOME.
Offline
And does bluetoothctl work on gnome?
When attempting to use the latter on TTY2, there was no other session running?
Stop the bluetoothd service, run "sudo bluetoothd -n -d |& tee /tmp/blutoothd.log" on one TTY and "bluetoothctl |& tee /tmp/btctl.log" on another TTY login.
Post both outputs.
Offline
No other session. I even killed lightdm with
sudo systemctl stop lightdm
in the TTY terminal before I ran bluetoothctl. I had never needed to use bluetoothctl under GNOME, but yes, it does work on GNOME. One moment, I will run your suggested commands.
Offline
Tried your code but bluetoothd doesn't exist in my system PATH.
Offline
sudo /usr/lib/bluetooth/bluetoothd -n -d |& tee /tmp/blutoothd.log
Offline
/tmp/btctl.log:
[bluetoothctl]> agent KeyboardOnly
Agent is already registered
[bluetoothctl]> agent on
Agent is already registered
[bluetoothctl]> scan on
SetDiscoveryFilter failed: org.bluez.Error.NotReady
Failed to start discovery: org.bluez.Error.NotReady
[bluetoothctl]> connect 00:A4:1C:F5:00:63
Attempting to connect to 00:A4:1C:F5:00:63
Failed to connect: org.bluez.Error.NotReady br-connection-adapter-not-powered
as for /tmp/bluetoothd.log it is:
bluetoothd[7481]: Bluetooth daemon 5.84
bluetoothd[7481]: src/main.c:parse_config() parsing /etc/bluetooth/main.conf
bluetoothd[7481]: src/main.c:parse_config_string() General.ControllerMode = "dual"
bluetoothd[7481]: src/main.c:get_mode() Unknown controller mode ""dual""
D-Bus setup failed: Name already in use
bluetoothd[7481]: src/main.c:main() Unable to get on D-Bus
I will admit, this was the log I obtained when I ran the command the second time. The first time I partly lost, but this is a screenshot showing a fair chunk of the output: https://photos.app.goo.gl/ntb4grHiUhFqTP1r8
Offline
Failed to connect: org.bluez.Error.NotReady br-connection-adapter-not-powered
You forgot the "power on" and there seems to be a running bluetoothd instance already?
Offline
Not sure why. I did run systemctl stop bluetoothd to stop it. And yes, I did forget that. I'll redo it.
Offline
I re-ran your commands and we seem to be getting somewhere...
bluetoothd.log:
bluetoothd[236997]: Bluetooth daemon 5.84
bluetoothd[236997]: src/main.c:parse_config() parsing /etc/bluetooth/main.conf
bluetoothd[236997]: src/main.c:parse_config_string() General.ControllerMode = "dual"
bluetoothd[236997]: src/main.c:get_mode() Unknown controller mode ""dual""
D-Bus setup failed: Name already in use
bluetoothd[236997]: src/main.c:main() Unable to get on D-Bus
btctl.log:
[NEW] Media /org/bluez/hci1
SupportedUUIDs: 0000110a-0000-1000-8000-00805f9b34fb
SupportedUUIDs: 0000110b-0000-1000-8000-00805f9b34fb
Agent registered
[CHG] Controller 8A:88:4B:E0:37:34 Pairable: yes
hci1 new_settings: powered bondable ssp br/edr le secure-conn
[bluetoothctl]> agent KeyboardOnly
Agent is already registered
[bluetoothctl]> agent on
Agent is already registered
[bluetoothctl]> power on
Changing power on succeeded
[bluetoothctl]> scan on
SetDiscoveryFilter success
Discovery started
[CHG] Controller 8A:88:4B:E0:37:34 Discovering: yes
[NEW] Device CB:50:3E:4B:A1:50 JBL Tune 770NC-LE
[NEW] Device 2E:9C:8F:02:80:0A 2E-9C-8F-02-80-0A
[CHG] Device CB:50:3E:4B:A1:50 RSSI: 0xffffffbe (-66)
[bluetoothctl]> pair CB:50:3E:4B:A1:50
Attempting to pair with CB:50:3E:4B:A1:50
[CHG] Device CB:50:3E:4B:A1:50 Connected: yes
[SIGNAL] LE.Disconnected - org.bluez.Reason.Unknown, Unspecified
[SIGNAL] Disconnected - org.bluez.Reason.Unknown, Unspecified
[CHG] Device CB:50:3E:4B:A1:50 Connected: no
Failed to pair: org.bluez.Error.AuthenticationCanceled
[bluetoothctl]> connect CB:50:3E:4B:A1:50
Attempting to connect to CB:50:3E:4B:A1:50
[CHG] Device CB:50:3E:4B:A1:50 Connected: yes
Failed to connect: org.bluez.Error.Failed le-connection-abort-by-local
[SIGNAL] LE.Disconnected - org.bluez.Reason.Unknown, Unspecified
[SIGNAL] Disconnected - org.bluez.Reason.Unknown, Unspecified
[CHG] Device CB:50:3E:4B:A1:50 Connected: no
[CHG] Device CB:50:3E:4B:A1:50 UUIDs: 5052494d-2dab-0341-6972-6f6861424c45
[CHG] Device CB:50:3E:4B:A1:50 AdvertisingFlags:
06 .
[bluetoothctl]> quit
Offline
There's been a development... I have found that Bluetooth connections established under GNOME still work when I switch sessions. I tried rebooting Arch and starting Hyprland without running GNOME first. I tried connecting to my device via bluetoothctl.
scan on
did not show my device, or at least not the MAC address I recognize as my device. I opened up bluetooth manager and bluetooth automatically connected when I did this. Not sure what's changed. But in a sense this error is fixed, although it would be interesting if there's a way to get bluetoothctl to actually list and connect to my device... Oh and thank you for your help!
Last edited by fusion809 (2025-10-12 16:04:04)
Offline
The connections are maintained by bluetoothd, no matter what GUI you use to control it (which is why the entire gnome thing suggests some sort of communication/authentication issue from your bluetoothctl invocation)
D-Bus setup failed: Name already in use
Check "ps aux | grep bluetooth" after stopping the service.
[SIGNAL] LE.Disconnected - org.bluez.Reason.Unknown, Unspecified
[SIGNAL] Disconnected - org.bluez.Reason.Unknown, Unspecified
[CHG] Device CB:50:3E:4B:A1:50 Connected: no
Failed to pair: org.bluez.Error.AuthenticationCanceled
Did you ever have to enter a PIN to pair the device?
Gnome might have stored that and provides it from there where right now no agent asks you for a pin.
If you don't need a pin for the device, you need to "trust CB:50:3E:4B:A1:50" first.
did not show my device
But likewise no errors and maybe even other devices?
Offline
ps aux | grep bluetooth after running systemctl stop bluetooth returns:
root 10260 0.3 0.0 10508 5604 ? Ss 12:25 0:00 /usr/lib/bluetooth/bluetoothd
fusion8+ 10312 0.0 0.0 6864 4460 pts/0 S+ 12:25 0:00 grep --color=auto --exclude-dir=.bzr --exclude-dir=CVS --exclude-dir=.git --exclude-dir=.hg --exclude-dir=.svn --exclude-dir=.idea --exclude-dir=.tox --exclude-dir=.venv --exclude-dir=venv bluetooth
so yes bluetoothd is still running. And yes, now I can connect to bluetooth via bluetoothctl. Thanks! And yeah, no errors, and maybe even other devices. I don't really recognize their mac addresses, but I do have other bluetooth devices nearby.
Offline
I'm not 100% sure what the error was (except the apparent communication issue between bluetoothctl and bluetoothd - outside gnome? - or a fluke?) but in case and please always remember to mark resolved threads by editing your initial posts subject - so others will know that there's no task left, but maybe a solution to find.
Thanks.
Offline
Turns out it isn't resolved. I booted into Hyprland today and bluetooth didn't work out of the box. I had to boot into GNOME first in order to fix this issue. bluetoothctl gave the errors I started this post with.
Offline