I'm sure there are other reasons, but I don't know them, thus the weasel words.

> And if we _know_ that there have been too many failed attempts, it'd be nice to return a more specific error.

It's included in the JSON message returned from the server (which will, in turn, be in the `NSError`), but that's it. The only solution would seem to be matching text in GitHub API errors, and that just sounds hacky.