Switchbot Bluetooth not working on VM installation

I have a new HA OS install on an UnRaid VM that I just moved from my old Raspberry 3. The migration mostly worked great except the Switchbot devices. I’ve read a few threads here and on other sites but I’m kinda stuck how to resolve this.

Current state:

  • I followed the official HA OS UnRaid installation guide. The backup import went OK
  • I have a USB Zigbee adapter that works just fine so other USB devices seem to be OK
  • the Bluetooth adapter is recognized within HA image
  • the Bluetooth adapter is set to active discovery in HA
  • whenever I try to add a Switchbot device, the operation immediately fails (instantly, not after a timeout).
  • I see an error message in HA OS terminal: Bluetooth: hci0: Failed to read codec capabilities (-22)
  • HA OS is latest

The Bluetooth adapter is a TP-Link Archer TX20E device. Which is a hybrid Wifi/USB PCIe extension card. The Bluetooth adapter shows up as a USB device in UnRaid. I can’t find the exact chipset beyond that it is a Realtek chip.

Any pointers would be appreciated. One point that I am uncertain about on the UnRaid side (the installation guide didn’t specify it) is which “USB Controller” option needs to be set

HA Bluetooth diagnostics contents:

{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2023.11.1",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.11.6",
    "docker": true,
    "arch": "x86_64",
    "timezone": "Asia/Tokyo",
    "os_name": "Linux",
    "os_version": "6.1.59",
    "supervisor": "2023.11.0",
    "host_os": "Home Assistant OS 11.1",
    "docker_version": "24.0.6",
    "chassis": "vm",
    "run_as_root": true
  },
  "custom_components": {
    "hacs": {
      "version": "1.32.1",
      "requirements": [
        "aiogithubapi>=22.10.1"
      ]
    },
    "sonoff": {
      "version": "3.5.2",
      "requirements": [
        "pycryptodome>=3.6.6"
      ]
    }
  },
  "integration_manifest": {
    "domain": "bluetooth",
    "name": "Bluetooth",
    "codeowners": [
      "@bdraco"
    ],
    "config_flow": true,
    "dependencies": [
      "usb"
    ],
    "documentation": "https://www.home-assistant.io/integrations/bluetooth",
    "iot_class": "local_push",
    "loggers": [
      "btsocket",
      "bleak_retry_connector",
      "bluetooth_adapters",
      "bluetooth_auto_recovery"
    ],
    "quality_scale": "internal",
    "requirements": [
      "bleak==0.21.1",
      "bleak-retry-connector==3.3.0",
      "bluetooth-adapters==0.16.1",
      "bluetooth-auto-recovery==1.2.3",
      "bluetooth-data-tools==1.13.0",
      "dbus-fast==2.12.0"
    ],
    "is_built_in": true
  },
  "data": {
    "manager": {
      "adapters": {
        "hci0": {
          "address": "10:68:38:76:4F:79",
          "sw_version": "homeassistant",
          "hw_version": "usb:v1D6Bp0246d0546",
          "passive_scan": true,
          "manufacturer": "Realtek",
          "product": "Bluetooth Radio",
          "vendor_id": "13d3",
          "product_id": "3570"
        }
      },
      "slot_manager": {
        "manager": true,
        "adapter_slots": {
          "hci0": 5
        },
        "allocations_by_adapter": {
          "hci0": []
        }
      },
      "scanners": [
        {
          "name": "hci0 (10:68:38:76:4F:79)",
          "start_time": 1802.504534058,
          "source": "10:68:38:76:4F:79",
          "scanning": true,
          "type": "HaScanner",
          "last_detection": 1802.504534058,
          "monotonic_time": 1879.321730827,
          "discovered_devices_and_advertisement_data": [],
          "adapter": "hci0"
        }
      ],
      "connectable_history": [],
      "all_history": [],
      "advertisement_tracker": {
        "intervals": {},
        "fallback_intervals": {},
        "sources": {},
        "timings": {}
      }
    },
    "adapters": {
      "hci0": {
        "address": "10:68:38:76:4F:79",
        "sw_version": "homeassistant",
        "hw_version": "usb:v1D6Bp0246d0546",
        "passive_scan": true,
        "manufacturer": "Realtek",
        "product": "Bluetooth Radio",
        "vendor_id": "13d3",
        "product_id": "3570"
      }
    },
    "dbus": {
      "/org/bluez": {
        "org.freedesktop.DBus.Introspectable": {},
        "org.bluez.AgentManager1": {},
        "org.bluez.ProfileManager1": {}
      },
      "/org/bluez/hci0": {
        "org.freedesktop.DBus.Introspectable": {},
        "org.bluez.Adapter1": {
          "Address": "10:68:38:76:4F:79",
          "AddressType": "public",
          "Name": "homeassistant",
          "Alias": "homeassistant",
          "Class": 7077888,
          "Powered": true,
          "PowerState": "on",
          "Discoverable": false,
          "DiscoverableTimeout": 180,
          "Pairable": false,
          "PairableTimeout": 0,
          "Discovering": true,
          "UUIDs": [
            "0000110e-0000-1000-8000-00805f9b34fb",
            "00001200-0000-1000-8000-00805f9b34fb",
            "0000111f-0000-1000-8000-00805f9b34fb",
            "0000110b-0000-1000-8000-00805f9b34fb",
            "00001108-0000-1000-8000-00805f9b34fb",
            "0000110c-0000-1000-8000-00805f9b34fb",
            "0000184f-0000-1000-8000-00805f9b34fb",
            "00001800-0000-1000-8000-00805f9b34fb",
            "00001801-0000-1000-8000-00805f9b34fb",
            "00001844-0000-1000-8000-00805f9b34fb",
            "0000180a-0000-1000-8000-00805f9b34fb",
            "0000184d-0000-1000-8000-00805f9b34fb",
            "00001845-0000-1000-8000-00805f9b34fb",
            "0000110a-0000-1000-8000-00805f9b34fb"
          ],
          "Modalias": "usb:v1D6Bp0246d0546",
          "Roles": [
            "central",
            "peripheral"
          ]
        },
        "org.freedesktop.DBus.Properties": {},
        "org.bluez.BatteryProviderManager1": {},
        "org.bluez.GattManager1": {},
        "org.bluez.AdvertisementMonitorManager1": {
          "SupportedMonitorTypes": [
            "or_patterns"
          ],
          "SupportedFeatures": []
        },
        "org.bluez.Media1": {
          "SupportedUUIDs": [
            "0000110a-0000-1000-8000-00805f9b34fb",
            "0000110b-0000-1000-8000-00805f9b34fb"
          ]
        },
        "org.bluez.NetworkServer1": {},
        "org.bluez.LEAdvertisingManager1": {
          "ActiveInstances": 0,
          "SupportedInstances": 10,
          "SupportedIncludes": [
            "tx-power",
            "appearance",
            "local-name"
          ],
          "SupportedSecondaryChannels": [
            "1M",
            "2M",
            "Coded"
          ],
          "SupportedFeatures": [
            "CanSetTxPower",
            "HardwareOffload"
          ],
          "SupportedCapabilities": {
            "MinTxPower": -90,
            "MaxTxPower": 0,
            "MaxAdvLen": 31,
            "MaxScnRspLen": 31
          }
        }
      }
    }
  }
}