If something goes wrong with fetching tokens, it's hard to debug and find out why. You have to wait up to 5 seconds for another error to get fetched. If a valid token never arrives, you will "wait" until you timeout. We could give more error information faster.
I think we should probably "cache" exceptions and return early, plus there are some fall-through cases where nothing happens (if token is not valid basically)
If something goes wrong with fetching tokens, it's hard to debug and find out why. You have to wait up to 5 seconds for another error to get fetched. If a valid token never arrives, you will "wait" until you timeout. We could give more error information faster.