googleapis / googleapis/google-cloud-cpp

Treat credential errors as retryable

Open
#10,345 3 comments 0 reactions 0 assignees View on GitHub
type: feature request
Dominant language
C++
Stars
659
Forks
462
Avg merge
1d 2h
Merged PRs (30d)
89

Description

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.

Contributor guide

Open the contributing guide

Research direction

No files or tests are named. Start by reviewing the recent ErrorInfo work for local failures and tracing the retry loops across the C++ client libraries; done means credential-fetch failures are distinguishable and treated as transient, including for non-idempotent operations.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp, grpc
Domain
authentication, backend-api-design
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.