1291
var elasticErr *elastic.Error
1292
switch {
1294
>
// Logging the full error message, useful for debugging.
1295
>
logger.Error(message, tag.ESResponseStatus(elasticErr.Status), tag.Error(err))
1296
>
switch elasticErr.Status {
1297
>
case http.StatusBadRequest:
1298
>
// Returning InvalidArgument error will prevent retry on a caller side.
1299
>
return serviceerror.NewInvalidArgument(errMessage)
1300
>
case http.StatusTooManyRequests:
1301
>
return &serviceerror.ResourceExhausted{
1302
>
Cause: enumspb.RESOURCE_EXHAUSTED_CAUSE_SYSTEM_OVERLOADED,
1303
>
Scope: enumspb.RESOURCE_EXHAUSTED_SCOPE_SYSTEM,
1304
>
Message: errMessage,
1305
>
}
1306
}
1308
case errors.Is(err, context.Canceled), errors.Is(err, context.DeadlineExceeded):
1309
return fmt.Errorf("%s: %w", message, err)