LedgerHQ/ledger-live

[Bug]: silent TransportWebHID failure for Ledger Stax and Flex

Closed this issue · 6 comments

Impacted Library name

@ledgerhq/hw-transport-webhid

Impacted Library version

6.29.2

Describe the bug

When attempting to connect a Stax or Flex device using the SDK, the transport will quietly fail at the transport creation step. User receives the HID request, but the SDK hangs after it is accepted.

Example usage:

let transport = await TransportWebHID.create();
const appEth = new AppEth(transport);
const result = await appEth.getAddress(
  getHDPathForVendorAndType(0, 'Ledger'),
  false,
  false,
);

Console includes the following log when the Chrome HID request appears:

Chooser dialog is not displaying a FIDO HID device: vendorId=11415, productId=28693, name='Ledger Flex', serial='0001'

Expected behavior

Successfully pair with Ledger device, or throw an error that the transport pairing has failed.

Additional context

A reference implementation for Rainbow Wallet is available here: https://github.com/rainbow-me/browser-extension/blob/cf5a7051818905bffa56f5c8ab5bef7040f76f53/src/entries/popup/handlers/wallet.ts#L443

Screenshot of the HID and accompanying logs:
Screenshot 2024-08-16 at 1 55 35 AM

cc @KVNLS in case you happen to be the codeowner for transport issues

This issue is stale because it has been open 30 days with no activity. Remove stale label, comment, or consider closing it.

@DanielSinclair our QA and tech team was not able to reproduce, just slacked you so I get gather more information on this issue.

Issue has been reported by Rabby too.

I can't help debug or reproduce now since it was fixed by re-pairing the device with Chrome.
Trying to describe what happened on my side:

  1. I upgrade Ethereum of my Ledger Stax to version 1.12.1(OS version 1.5.0)
  2. trying to sign a transaction on Rabby(paired before), failed(sorry didn't catch error message that time)
  3. the same thing happened to my colleague, he found that re-pairing would fix
  4. re-pairing(remove hid permission and re-allow) on my side and issue fixed

This issue is stale because it has been open 30 days with no activity. Remove stale label, comment, or consider closing it.