I think we should probably change `disconnect` to not throw. There's nothing useful you can do with this exception!