<!-- If you are using Node USB before v3.0.0, please create your issue at https://github.com/node-usb/node-usb/issues instead. --> <!-- Please provide a detailed description of the bug. --> ## Bug Description: `transferIn()` is cancelled after 1000 ms by default. WebUSB does not define such a timeout. Chromium passes `0`, meaning no timeout-the request remains pending until completion or cancellation. https://chromium.googlesource.com/chromium/src/third_party/+/master/blink/renderer/modules/webusb/usb_device.cc#547 ## Steps to Reproduce: ```js import { usb } from 'usb'; const device = (await usb.getDevices()).find((candidate) => candidate.vendorId === 0x067B && candidate.productId === 0x2303); await device.open(); if (!device.configuration) await device.selectConfiguration(1); try { await device.detachKernelDriver(0); } catch (_e) { } await device.claimInterface(0); console.time("elapsed"); try { await device.transferIn(3, 64); } catch (error) { console.log(error); } console.timeEnd("elapsed"); ``` ## Additional Information - ArchLinux - NodeJS v26.10.0 - node-usb-rs from main branch
Activity
thegecko commentedon Oct 5, 2026
Thanks for raising this issue, Ive implemented an initial (untested) fix in #84