Describe the bug
There are 8 bare except: pass clauses across src/packages/buskill/__init__.py that silently swallow all exceptions, including KeyboardInterrupt and SystemExit. This makes debugging nearly impossible — genuine errors (AttributeError, TypeError, etc.) are completely hidden, and the process cannot be killed cleanly via Ctrl+C.
Locations
| Line |
Code |
What it masks |
| 479-480 |
except:\n pass |
self.usb_handler.join() failures (incl. AttributeError if handler is None) |
| 492-493 |
except:\n pass |
self.upgrade_process.join() failures |
| 498-499 |
except:\n pass |
wipeCache() failures |
| 935-936 |
except:\n pass |
self.usb_handler.kill() / .join() — masks any exception |
| 1601-1602 |
except:\n pass |
umount failures |
| 1610-1611 |
except:\n pass |
os.makedirs() / os.chmod() failures |
| 1867-1868 |
except:\n pass |
KEYS file read failures (bare except catches everything) |
| 894-896 |
except:\n pass |
setupDataDir() missing attribute access |
Expected behavior
Replace bare except: pass with specific exception types and at minimum log the error:
except Exception as e:
logger.error(f"Failed to do X: {e}")
For cleanup operations where failure is acceptable, still log at debug level instead of silencing completely.
Severity
Medium — 8 locations silently hiding errors, degrading debuggability and preventing graceful shutdown.
Describe the bug
There are 8 bare
except: passclauses acrosssrc/packages/buskill/__init__.pythat silently swallow all exceptions, includingKeyboardInterruptandSystemExit. This makes debugging nearly impossible — genuine errors (AttributeError, TypeError, etc.) are completely hidden, and the process cannot be killed cleanly via Ctrl+C.Locations
except:\n passself.usb_handler.join()failures (incl.AttributeErrorif handler isNone)except:\n passself.upgrade_process.join()failuresexcept:\n passwipeCache()failuresexcept:\n passself.usb_handler.kill()/.join()— masks any exceptionexcept:\n passumountfailuresexcept:\n passos.makedirs()/os.chmod()failuresexcept:\n passexcept:\n passsetupDataDir()missing attribute accessExpected behavior
Replace bare
except: passwith specific exception types and at minimum log the error:For cleanup operations where failure is acceptable, still log at debug level instead of silencing completely.
Severity
Medium — 8 locations silently hiding errors, degrading debuggability and preventing graceful shutdown.