If a FIDO device connects via BLE before the device itself is ready to accept CTAP commands, it returns Ctap1ErrChannelBusy. Chrome currently drops these requests but should retry.
Per Jan:
Each FidoBleDevice should be able to handle this error independently, and retry if necessary. That way only busy devices would be retried, and the MakeCredential operation would be non the wiser. I believe the correct place to put this logic would be FidoBleDevice::OnResponseFrame, possibly even on a lower level than that. for example FidoBleTransaction. We already have some special logic there to ignore KeepAlive messages, so adding this logic there is hopefully not too bad.
Comment 1 by kpaulhamus@chromium.org
, Oct 12