All examples that use authentication have something like:
while (!service.Authenticator.CanAuthenticate())
yield return null;
The problem is that if an error has happened this will wait indefinitely, the co-routine never ends, and I cannot display a message for the user.