8000 fix(errorformat): classify Google errors by google.api.ErrorReason va… · felinics/twilight@a3b29af · GitHub
[go: up one dir, main page]

Skip to content

Commit a3b29af

Browse files
authored
fix(errorformat): classify Google errors by google.api.ErrorReason values only
API_KEY_MISSING, QUOTA_EXCEEDED and RESOURCE_EXHAUSTED are not ErrorInfo reasons of the googleapis.com domain. Map the enum's other credential and access reasons instead; unlisted reasons still fall back to the canonical status.
1 parent b0e0a1b commit a3b29af

1 file changed

Lines changed: 8 additions & 5 deletions

File tree

‎internal/errorformat/errorformat.go‎

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -193,18 +193,21 @@ func DecodeGoogle(e *sdk.APIError) {
193193
}
194194

195195
// GoogleKind classifies a google.rpc.Status by its ErrorInfo reason and, when
196-
// the reason has no mapping, by its canonical status.
196+
// the reason has no mapping, by its canonical status. The reasons are values
197+
// of google.api.ErrorReason
198+
// (https://github.com/googleapis/googleapis/blob/master/google/api/error_reason.proto).
197199
func GoogleKind(status, reason string) sdk.ErrorKind {
198200
switch reason {
199-
case "API_KEY_INVALID", "API_KEY_MISSING", "CREDENTIALS_MISSING",
200-
"ACCESS_TOKEN_EXPIRED", "ACCESS_TOKEN_TYPE_UNSUPPORTED":
201+
case "API_KEY_INVALID", "CREDENTIALS_MISSING", "ACCESS_TOKEN_EXPIRED",
202+
"ACCESS_TOKEN_TYPE_UNSUPPORTED", "CREDENTIAL_TYPE_UNSUPPORTED", "JWT_TOKEN_INVALID":
201203
return sdk.KindAuthentication
202204
case "API_KEY_SERVICE_BLOCKED", "API_KEY_HTTP_REFERRER_BLOCKED", "API_KEY_IP_ADDRESS_BLOCKED",
203-
"ACCESS_TOKEN_SCOPE_INSUFFICIENT", "CONSUMER_SUSPENDED", "SERVICE_DISABLED", "USER_PROJECT_DENIED":
205+
"API_KEY_ANDROID_APP_BLOCKED", "API_KEY_IOS_APP_BLOCKED", "ACCESS_TOKEN_SCOPE_INSUFFICIENT",
206+
"IAM_PERMISSION_DENIED", "USER_PROJECT_DENIED", "SERVICE_DISABLED", "CONSUMER_SUSPENDED":
204207
return sdk.KindPermissionDenied
205208
case "BILLING_DISABLED":
206209
return sdk.KindQuotaExhausted
207-
case "RATE_LIMIT_EXCEEDED", "QUOTA_EXCEEDED", "RESOURCE_EXHAUSTED":
210+
case "RATE_LIMIT_EXCEEDED":
208211
return sdk.KindRateLimited
209212
}
210213
switch status {

0 commit comments

Comments
 (0)
0