fixed exception handling in async call. also cleanup on-message callback.