What is different in this API from Web Sockets that requires asynchronous error handling? We can handle this as a separate bug. I'm just wondering.