From 13c6090f8ce4a3b1a406ae1955fb054b33114b23 Mon Sep 17 00:00:00 2001 From: uier Date: Wed, 8 Jul 2026 07:22:22 +0000 Subject: [PATCH] transport/usb: Handle missing interruptEventHandler gracefully Wrap `interruptEventHandler()` in a try-catch block to handle unsupported operations on older libusb versions. --- bumble/transport/usb.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/bumble/transport/usb.py b/bumble/transport/usb.py index e0f98ea1..70e5b8cb 100644 --- a/bumble/transport/usb.py +++ b/bumble/transport/usb.py @@ -729,7 +729,10 @@ async def close(self): # We no longer need the event loop to run with self.lock: self.event_loop_should_exit = True - self.context.interruptEventHandler() + try: + self.context.interruptEventHandler() + except (AttributeError, usb1.USBError) as error: + logger.warning(f"Failed to interrupt event handler: {error}") self.device.releaseInterface(self.acl_interface.getNumber()) if self.sco_interface: