files/en-us/web/api/usbdevice/clearhalt/index.md
{{APIRef("WebUSB API")}}{{SeeCompatTable}}{{SecureContext_Header}}{{AvailableInWorkers}}
The clearHalt() method of the {{domxref("USBDevice")}}
interface returns a {{jsxref("promise")}} that resolves when a halt condition is
cleared. A halt condition is when a data transfer to or from the device has a status
of 'stall', which requires the web page (the host system, in USB
terminology) to clear that condition. See the for details.
clearHalt(direction, endpointNumber)
direction
'in' or 'out'.endpointNumber
A {{jsxref("promise")}}.
The following example shows how to test for and clear a 'stall' condition
in the result of a data transfer.
[!NOTE] What data can be passed to a USB device and how it is passed is particular and unique to each device.
while (true) {
let result = await data.transferIn(1, 6);
if (result.data && result.data.byteLength === 6) {
console.log(`Channel 1: ${result.data.getUint16(0)}`);
console.log(`Channel 2: ${result.data.getUint16(2)}`);
console.log(`Channel 5: ${result.data.getUint16(4)}`);
}
if (result.status === "stall") {
console.warn("Endpoint stalled. Clearing.");
await device.clearHalt("in", 1);
}
}
{{Specifications}}
{{Compat}}