Treat credential errors as retryable
Most credentials need to periodically fetch an access token, often via some HTTP or gRPC request. These requests can fail. These failures are always retryable, even for non-idempotent operations, because the request never left the application.
At this time there is no way to distinguish credential failures from RPC failures. But with the recent work to populate ErrorInfo for local failures we could start telling this failures apparent. For example, we could add a gcloud-cpp/auth: true metadata entry to the error info.
We would need to change all the retry loops to treat these errors as transient failures.
Revisit for 2023/Q4
Revisit for 2024/Q2
Revisit for 2024/Q4