Currently, there are no checks within the service for when the BluetoothAdapter is disabled (i.e., turned off by a user) or removed (i.e., disappears due to firmware bug - b/64035404).
Instant Tethering and EasyUnlock automatically shut off when Bluetooth is not enabled, so connection requests originating from them will work "by chance" since they will be canceled. However, AWM and MultiDeviceSetup do not currently have those checks.
Proposed solution:
(1) Add two extra failure reasons (Bluetooth disabled and Bluetooth removed) to secure_channel.mojom.
(2) Pass the BluetoothAdapter to PendingConnectionRequestBase, and if/when the adapter becomes disabled/removed, call OnFinishedWithoutConnection(), passing the appropriate reasons defined in step 1.
[1] https://cs.chromium.org/chromium/src/chromeos/services/secure_channel/public/mojom/secure_channel.mojom?q=ConnectionAttemptFailureReason
[2] https://cs.chromium.org/chromium/src/chromeos/services/secure_channel/pending_connection_request_base.h
Comment 1 by khorimoto@chromium.org
, Aug 1