Bluetooth in degraded mode on Docker, but Work?!

I’m running Home Assistant in Docker on Debian using this docker-compose.yaml

services:
  home-assistant:
    container_name: home-assistant
    image: "ghcr.io/home-assistant/home-assistant:stable"
    volumes:
      - /opt/home-assistant/config:/config
      - /opt/home-assistant/media:/media
      - /opt/home-assistant/script:/script
      - /etc/localtime:/etc/localtime:ro
      - /run/dbus:/run/dbus:ro
    restart: unless-stopped
    privileged: true
    cap_add:
      - NET_ADMIN
      - NET_RAW
    networks:
      macvlan1:
        ipv4_address: x.x.x.x

networks:
  macvlan1:
    external: true

The CSR8510 A10 Bluetooth dongle is detected correctly, but Home Assistant shows this warning:

I’ve followed all the official guide recommendations: /run/dbus mounted as read-only, privileged: true, cap_add added. I also tried different network setups (macvlan, bridge), but the warning persists.

Important context:

  • I’m using macvlan because my IoT devices are on a separate VLAN.
  • Despite the warning, integrations that rely on Bluetooth seem to work correctly, though there may be slight delays (e.g., with SwitchBot devices).

Question: Could the issue be caused by using macvlan instead of host networking? Or with cap_add and privileged, shouldn’t there be no limitations?

Has anyone resolved this warning without switching to host network?

Thank you for your help! :grin:

Shouldn’t affect Bluetooth

It’s a warning message so maybe it’s just a warning and not indicate a problem

Has anyone ever encountered this Warning?

If there’s a way to check the “degraded” status, the logs (system) don’t report anything, but Home Assistant must see this status somewhere to know it’s degraded.

My only remaining concern is trying the “Host” network mode, but that would cause a lot of problems, since the network is designed differently. What do you think? :thinking:

Same problem here with the latest version.

So the error appeared after the update, but you didn’t have it before?

I was actually in the middle of migrating from one machine to another (where the dongle always worked without problems) and I thought it was the result of something wrong during the migration.

Let’s see if anyone can help us.

Has this happened to anyone yet? :thinking:

Same problem with RPI5 and latest stable

hci0 (<MAC>) (bcm43438-bt) is operating in degraded mode

Where did you find the error in this format (with the MAC address)? I’m also using a Raspberry Pi 5 (Docker), but I connected a CSR8510A10 dongle.

Now you’ve made me wonder whether the degraded interface is the dongle’s or the Raspberry’s. At least we have a comparison.

There is no additional BT dongle

# dmesg
[    5.611824] Bluetooth: hci0: BCM: chip id 107
[    5.612026] Bluetooth: hci0: BCM: features 0x2f
[    5.613091] Bluetooth: hci0: BCM4345C0
[    5.613093] Bluetooth: hci0: BCM4345C0 (003.001.025) build 0000
[    5.613825] Bluetooth: hci0: BCM4345C0 'brcm/BCM4345C0.raspberrypi,5-model-b.hcd' Patch
[    6.300076] Bluetooth: hci0: BCM: features 0x2f
[    6.301421] Bluetooth: hci0: BCM43455 37.4MHz Raspberry Pi 3+-0190
[    6.301423] Bluetooth: hci0: BCM4345C0 (003.001.025) build 0382
[    6.301730] Bluetooth: hci0: BCM: Using default device address (43:45:c0:00:1f:ac)


# hciconfig -a
hci0:   Type: Primary  Bus: UART
        BD Address: 2C:CF:67:80:XX:XX  ACL MTU: 1021:8  SCO MTU: 64:1
        UP RUNNING 
        RX bytes:1696284453 acl:2131 sco:0 events:49248639 errors:0
        TX bytes:1106536 acl:2131 sco:0 commands:122387 errors:0
        Features: 0xbf 0xfe 0xcf 0xfe 0xdb 0xff 0x7b 0x87
        Packet type: DM1 DM3 DM5 DH1 DH3 DH5 HV1 HV2 HV3 
        Link policy: RSWITCH SNIFF 
        Link mode: PERIPHERAL ACCEPT 
        Name: 'rpi5'
        Class: 0x000000
        Service Classes: Unspecified
        Device Class: Miscellaneous, 
        HCI Version: 5.0 (0x9)  Revision: 0x17e
        LMP Version: 5.0 (0x9)  Subversion: 0x6119
        Manufacturer: Cypress Semiconductor (305)


I’m having the same problem with my system. I’m letting it run smoothly for now. But the warning persists.

I’m not hitting “ignore” because I’d like to understand if there’s a way to check why it’s appearing.

Can anyone help?

I’ve come to the conclusion that after three weeks of seeing the error in my Home Assistant notifications, I’ve hit “Ignore”.

Testing with Switchbot Bluetooth devices hasn’t revealed any obvious issues.

Thanks for your interest.
Bye :wink:

What happens without these capabilities: (Bluetooth - Home Assistant)

When NET_ADMIN and NET_RAW capabilities are missing, your Bluetooth setup will work in a limited capacity, but you’ll miss out on some helpful features:

  • Bluetooth operates in degraded mode with reduced functionality

  • Automatic adapter recovery won’t be available - if your adapter stops responding, you’ll need to manually reset it

  • Connection parameters and management commands won’t work properly

  • Raw advertising data will be unavailable, which can lead to less reliable device updates

  • You’ll see this error in your logs: “Missing required permissions for Bluetooth management”

If you’re okay with slower connection times and don’t mind occasionally unplugging and replugging your Bluetooth adapter when it stops working, you can safely dismiss this warning and continue as-is.

That said, we’re actively improving the Bluetooth stack with new features, so choosing to skip this fix may mean missing out on future enhancements or encountering unexpected issues down the road. Just something to keep in mind!

Hi all,
I have the same issue as @MrTaik.
I can’t find a way to keep macvlan + have all the functionalities of the Bluetooth.
Does anybody know a way to let the macvlan have full access to the Bluetooth module?
Unfortunately I must keep macvlan but I need the full access to the module for some devices.

Thanks!

OP says Bluetooth shows no issue with macvlan.

There is no reason why networking will affect Bluetooth.

Your issue is likely unrelated to vlan

I’ve added the flags to my docker-compose.yaml but I still get this message on two servers (one running on a RPI4, another one on an old Dell machine).

compose yaml:

services:
  homeassistant:
    container_name: homeassistant
    image: "ghcr.io/home-assistant/home-assistant:stable"
    cap_add:
      - NET_ADMIN
      - NET_RAW
    volumes:
      - './config:/config'
      - /etc/localtime:/etc/localtime:ro
      - /run/dbus:/run/dbus:ro
    restart: unless-stopped
    privileged: true
    network_mode: host