Call transportFailed() only for IOException caused by the transport. Async exceptions from the broker could just mean that an async operation failed (like an async send).