#[repr(i32)]pub enum ErrorReason {
Show 33 variants
Unspecified = 0,
ServiceDisabled = 1,
BillingDisabled = 2,
ApiKeyInvalid = 3,
ApiKeyServiceBlocked = 4,
ApiKeyHttpReferrerBlocked = 7,
ApiKeyIpAddressBlocked = 8,
ApiKeyAndroidAppBlocked = 9,
ApiKeyIosAppBlocked = 13,
RateLimitExceeded = 5,
ResourceQuotaExceeded = 6,
LocationTaxPolicyViolated = 10,
UserProjectDenied = 11,
ConsumerSuspended = 12,
ConsumerInvalid = 14,
SecurityPolicyViolated = 15,
AccessTokenExpired = 16,
AccessTokenScopeInsufficient = 17,
AccountStateInvalid = 18,
AccessTokenTypeUnsupported = 19,
CredentialsMissing = 20,
ResourceProjectInvalid = 21,
SessionCookieInvalid = 23,
UserBlockedByAdmin = 24,
ResourceUsageRestrictionViolated = 25,
SystemParameterUnsupported = 26,
OrgRestrictionViolation = 27,
OrgRestrictionHeaderInvalid = 28,
ServiceNotVisible = 29,
GcpSuspended = 30,
LocationPolicyViolated = 31,
MissingOrigin = 33,
OverloadedCredentials = 34,
}
Expand description
Defines the supported values for google.rpc.ErrorInfo.reason
for the
googleapis.com
error domain. This error domain is reserved for Service
Infrastructure.
For each error info of this domain, the metadata key “service” refers to the
logical identifier of an API service, such as “pubsub.googleapis.com”. The
“consumer” refers to the entity that consumes an API Service. It typically is
a Google project that owns the client application or the server resource,
such as “projects/123”. Other metadata keys are specific to each error
reason. For more information, see the definition of the specific error
reason.
Variants§
Unspecified = 0
Do not use this default value.
ServiceDisabled = 1
The request is calling a disabled service for a consumer.
Example of an ErrorInfo when the consumer “projects/123” contacting “pubsub.googleapis.com” service which is disabled:
{ "reason": "SERVICE_DISABLED",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/123",
"service": "pubsub.googleapis.com"
}
}
This response indicates the “pubsub.googleapis.com” has been disabled in “projects/123”.
BillingDisabled = 2
The request whose associated billing account is disabled.
Example of an ErrorInfo when the consumer “projects/123” fails to contact “pubsub.googleapis.com” service because the associated billing account is disabled:
{ "reason": "BILLING_DISABLED",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/123",
"service": "pubsub.googleapis.com"
}
}
This response indicates the billing account associated has been disabled.
ApiKeyInvalid = 3
The request is denied because the provided API key is invalid. It may be in a bad format, cannot be found, or has been expired).
Example of an ErrorInfo when the request is contacting “storage.googleapis.com” service with an invalid API key:
{ "reason": "API_KEY_INVALID",
"domain": "googleapis.com",
"metadata": {
"service": "storage.googleapis.com",
}
}
ApiKeyServiceBlocked = 4
The request is denied because it violates API key API restrictions.
Example of an ErrorInfo when the consumer “projects/123” fails to call the “storage.googleapis.com” service because this service is restricted in the API key:
{ "reason": "API_KEY_SERVICE_BLOCKED",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/123",
"service": "storage.googleapis.com"
}
}
ApiKeyHttpReferrerBlocked = 7
The request is denied because it violates API key HTTP restrictions.
Example of an ErrorInfo when the consumer “projects/123” fails to call “storage.googleapis.com” service because the http referrer of the request violates API key HTTP restrictions:
{ "reason": "API_KEY_HTTP_REFERRER_BLOCKED",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/123",
"service": "storage.googleapis.com",
}
}
ApiKeyIpAddressBlocked = 8
The request is denied because it violates API key IP address restrictions.
Example of an ErrorInfo when the consumer “projects/123” fails to call “storage.googleapis.com” service because the caller IP of the request violates API key IP address restrictions:
{ "reason": "API_KEY_IP_ADDRESS_BLOCKED",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/123",
"service": "storage.googleapis.com",
}
}
ApiKeyAndroidAppBlocked = 9
The request is denied because it violates API key Android application restrictions.
Example of an ErrorInfo when the consumer “projects/123” fails to call “storage.googleapis.com” service because the request from the Android apps violates the API key Android application restrictions:
{ "reason": "API_KEY_ANDROID_APP_BLOCKED",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/123",
"service": "storage.googleapis.com"
}
}
ApiKeyIosAppBlocked = 13
The request is denied because it violates API key iOS application restrictions.
Example of an ErrorInfo when the consumer “projects/123” fails to call “storage.googleapis.com” service because the request from the iOS apps violates the API key iOS application restrictions:
{ "reason": "API_KEY_IOS_APP_BLOCKED",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/123",
"service": "storage.googleapis.com"
}
}
RateLimitExceeded = 5
The request is denied because there is not enough rate quota for the consumer.
Example of an ErrorInfo when the consumer “projects/123” fails to contact “pubsub.googleapis.com” service because consumer’s rate quota usage has reached the maximum value set for the quota limit “ReadsPerMinutePerProject” on the quota metric “pubsub.googleapis.com/read_requests”:
{ "reason": "RATE_LIMIT_EXCEEDED",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/123",
"service": "pubsub.googleapis.com",
"quota_metric": "pubsub.googleapis.com/read_requests",
"quota_limit": "ReadsPerMinutePerProject"
}
}
Example of an ErrorInfo when the consumer “projects/123” checks quota on the service “dataflow.googleapis.com” and hits the organization quota limit “DefaultRequestsPerMinutePerOrganization” on the metric “dataflow.googleapis.com/default_requests”.
{ "reason": "RATE_LIMIT_EXCEEDED",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/123",
"service": "dataflow.googleapis.com",
"quota_metric": "dataflow.googleapis.com/default_requests",
"quota_limit": "DefaultRequestsPerMinutePerOrganization"
}
}
ResourceQuotaExceeded = 6
The request is denied because there is not enough resource quota for the consumer.
Example of an ErrorInfo when the consumer “projects/123” fails to contact “compute.googleapis.com” service because consumer’s resource quota usage has reached the maximum value set for the quota limit “VMsPerProject” on the quota metric “compute.googleapis.com/vms”:
{ "reason": "RESOURCE_QUOTA_EXCEEDED",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/123",
"service": "compute.googleapis.com",
"quota_metric": "compute.googleapis.com/vms",
"quota_limit": "VMsPerProject"
}
}
Example of an ErrorInfo when the consumer “projects/123” checks resource quota on the service “dataflow.googleapis.com” and hits the organization quota limit “jobs-per-organization” on the metric “dataflow.googleapis.com/job_count”.
{ "reason": "RESOURCE_QUOTA_EXCEEDED",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/123",
"service": "dataflow.googleapis.com",
"quota_metric": "dataflow.googleapis.com/job_count",
"quota_limit": "jobs-per-organization"
}
}
LocationTaxPolicyViolated = 10
The request whose associated billing account address is in a tax restricted location, violates the local tax restrictions when creating resources in the restricted region.
Example of an ErrorInfo when creating the Cloud Storage Bucket in the container “projects/123” under a tax restricted region “locations/asia-northeast3”:
{ "reason": "LOCATION_TAX_POLICY_VIOLATED",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/123",
"service": "storage.googleapis.com",
"location": "locations/asia-northeast3"
}
}
This response indicates creating the Cloud Storage Bucket in “locations/asia-northeast3” violates the location tax restriction.
UserProjectDenied = 11
The request is denied because the caller does not have required permission on the user project “projects/123” or the user project is invalid. For more information, check the userProject System Parameters.
Example of an ErrorInfo when the caller is calling Cloud Storage service with insufficient permissions on the user project:
{ "reason": "USER_PROJECT_DENIED",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/123",
"service": "storage.googleapis.com"
}
}
ConsumerSuspended = 12
The request is denied because the consumer “projects/123” is suspended due to Terms of Service(Tos) violations. Check Project suspension guidelines for more information.
Example of an ErrorInfo when calling Cloud Storage service with the suspended consumer “projects/123”:
{ "reason": "CONSUMER_SUSPENDED",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/123",
"service": "storage.googleapis.com"
}
}
ConsumerInvalid = 14
The request is denied because the associated consumer is invalid. It may be in a bad format, cannot be found, or have been deleted.
Example of an ErrorInfo when calling Cloud Storage service with the invalid consumer “projects/123”:
{ "reason": "CONSUMER_INVALID",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/123",
"service": "storage.googleapis.com"
}
}
SecurityPolicyViolated = 15
The request is denied because it violates VPC Service Controls. The ‘uid’ field is a random generated identifier that customer can use it to search the audit log for a request rejected by VPC Service Controls. For more information, please refer VPC Service Controls Troubleshooting
Example of an ErrorInfo when the consumer “projects/123” fails to call Cloud Storage service because the request is prohibited by the VPC Service Controls.
{ "reason": "SECURITY_POLICY_VIOLATED",
"domain": "googleapis.com",
"metadata": {
"uid": "123456789abcde",
"consumer": "projects/123",
"service": "storage.googleapis.com"
}
}
AccessTokenExpired = 16
The request is denied because the provided access token has expired.
Example of an ErrorInfo when the request is calling Cloud Storage service with an expired access token:
{ "reason": "ACCESS_TOKEN_EXPIRED",
"domain": "googleapis.com",
"metadata": {
"service": "storage.googleapis.com",
"method": "google.storage.v1.Storage.GetObject"
}
}
AccessTokenScopeInsufficient = 17
The request is denied because the provided access token doesn’t have at least one of the acceptable scopes required for the API. Please check OAuth 2.0 Scopes for Google APIs for the list of the OAuth 2.0 scopes that you might need to request to access the API.
Example of an ErrorInfo when the request is calling Cloud Storage service with an access token that is missing required scopes:
{ "reason": "ACCESS_TOKEN_SCOPE_INSUFFICIENT",
"domain": "googleapis.com",
"metadata": {
"service": "storage.googleapis.com",
"method": "google.storage.v1.Storage.GetObject"
}
}
AccountStateInvalid = 18
The request is denied because the account associated with the provided access token is in an invalid state, such as disabled or deleted. For more information, see https://cloud.google.com/docs/authentication.
Warning: For privacy reasons, the server may not be able to disclose the
email address for some accounts. The client MUST NOT depend on the
availability of the email
attribute.
Example of an ErrorInfo when the request is to the Cloud Storage API with an access token that is associated with a disabled or deleted service account:
{ "reason": "ACCOUNT_STATE_INVALID",
"domain": "googleapis.com",
"metadata": {
"service": "storage.googleapis.com",
"method": "google.storage.v1.Storage.GetObject",
"email": "user@123.iam.gserviceaccount.com"
}
}
AccessTokenTypeUnsupported = 19
The request is denied because the type of the provided access token is not supported by the API being called.
Example of an ErrorInfo when the request is to the Cloud Storage API with an unsupported token type.
{ "reason": "ACCESS_TOKEN_TYPE_UNSUPPORTED",
"domain": "googleapis.com",
"metadata": {
"service": "storage.googleapis.com",
"method": "google.storage.v1.Storage.GetObject"
}
}
CredentialsMissing = 20
The request is denied because the request doesn’t have any authentication credentials. For more information regarding the supported authentication strategies for Google Cloud APIs, see https://cloud.google.com/docs/authentication.
Example of an ErrorInfo when the request is to the Cloud Storage API without any authentication credentials.
{ "reason": "CREDENTIALS_MISSING",
"domain": "googleapis.com",
"metadata": {
"service": "storage.googleapis.com",
"method": "google.storage.v1.Storage.GetObject"
}
}
ResourceProjectInvalid = 21
The request is denied because the provided project owning the resource which acts as the API consumer is invalid. It may be in a bad format or empty.
Example of an ErrorInfo when the request is to the Cloud Functions API, but the offered resource project in the request in a bad format which can’t perform the ListFunctions method.
{ "reason": "RESOURCE_PROJECT_INVALID",
"domain": "googleapis.com",
"metadata": {
"service": "cloudfunctions.googleapis.com",
"method":
"google.cloud.functions.v1.CloudFunctionsService.ListFunctions"
}
}
SessionCookieInvalid = 23
The request is denied because the provided session cookie is missing, invalid or failed to decode.
Example of an ErrorInfo when the request is calling Cloud Storage service with a SID cookie which can’t be decoded.
{ "reason": "SESSION_COOKIE_INVALID",
"domain": "googleapis.com",
"metadata": {
"service": "storage.googleapis.com",
"method": "google.storage.v1.Storage.GetObject",
"cookie": "SID"
}
}
UserBlockedByAdmin = 24
The request is denied because the user is from a Google Workspace customer that blocks their users from accessing a particular service.
Example scenario: https://support.google.com/a/answer/9197205?hl=en
Example of an ErrorInfo when access to Google Cloud Storage service is blocked by the Google Workspace administrator:
{ "reason": "USER_BLOCKED_BY_ADMIN",
"domain": "googleapis.com",
"metadata": {
"service": "storage.googleapis.com",
"method": "google.storage.v1.Storage.GetObject",
}
}
ResourceUsageRestrictionViolated = 25
The request is denied because the resource service usage is restricted by administrators according to the organization policy constraint. For more information see https://cloud.google.com/resource-manager/docs/organization-policy/restricting-services.
Example of an ErrorInfo when access to Google Cloud Storage service is restricted by Resource Usage Restriction policy:
{ "reason": "RESOURCE_USAGE_RESTRICTION_VIOLATED",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/project-123",
"service": "storage.googleapis.com"
}
}
SystemParameterUnsupported = 26
Unimplemented. Do not use.
The request is denied because it contains unsupported system parameters in URL query parameters or HTTP headers. For more information, see https://cloud.google.com/apis/docs/system-parameters
Example of an ErrorInfo when access “pubsub.googleapis.com” service with a request header of “x-goog-user-ip”:
{ "reason": "SYSTEM_PARAMETER_UNSUPPORTED",
"domain": "googleapis.com",
"metadata": {
"service": "pubsub.googleapis.com"
"parameter": "x-goog-user-ip"
}
}
OrgRestrictionViolation = 27
The request is denied because it violates Org Restriction: the requested resource does not belong to allowed organizations specified in “X-Goog-Allowed-Resources” header.
Example of an ErrorInfo when accessing a GCP resource that is restricted by Org Restriction for “pubsub.googleapis.com” service.
{ reason: “ORG_RESTRICTION_VIOLATION” domain: “googleapis.com” metadata { “consumer”:“projects/123456” “service”: “pubsub.googleapis.com” } }
OrgRestrictionHeaderInvalid = 28
The request is denied because “X-Goog-Allowed-Resources” header is in a bad format.
Example of an ErrorInfo when accessing “pubsub.googleapis.com” service with an invalid “X-Goog-Allowed-Resources” request header.
{ reason: “ORG_RESTRICTION_HEADER_INVALID” domain: “googleapis.com” metadata { “consumer”:“projects/123456” “service”: “pubsub.googleapis.com” } }
ServiceNotVisible = 29
Unimplemented. Do not use.
The request is calling a service that is not visible to the consumer.
Example of an ErrorInfo when the consumer “projects/123” contacting “pubsub.googleapis.com” service which is not visible to the consumer.
{ "reason": "SERVICE_NOT_VISIBLE",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/123",
"service": "pubsub.googleapis.com"
}
}
This response indicates the “pubsub.googleapis.com” is not visible to “projects/123” (or it may not exist).
GcpSuspended = 30
The request is related to a project for which GCP access is suspended.
Example of an ErrorInfo when the consumer “projects/123” fails to contact “pubsub.googleapis.com” service because GCP access is suspended:
{ "reason": "GCP_SUSPENDED",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/123",
"service": "pubsub.googleapis.com"
}
}
This response indicates the associated GCP account has been suspended.
LocationPolicyViolated = 31
The request violates the location policies when creating resources in the restricted region.
Example of an ErrorInfo when creating the Cloud Storage Bucket by “projects/123” for service storage.googleapis.com:
{ "reason": "LOCATION_POLICY_VIOLATED",
"domain": "googleapis.com",
"metadata": {
"consumer": "projects/123",
"service": "storage.googleapis.com",
}
}
This response indicates creating the Cloud Storage Bucket in “locations/asia-northeast3” violates at least one location policy. The troubleshooting guidance is provided in the Help links.
MissingOrigin = 33
The request is denied because origin request header is missing.
Example of an ErrorInfo when accessing “pubsub.googleapis.com” service with an empty “Origin” request header.
{ reason: “MISSING_ORIGIN” domain: “googleapis.com” metadata { “consumer”:“projects/123456” “service”: “pubsub.googleapis.com” } }
OverloadedCredentials = 34
The request is denied because the request contains more than one credential type that are individually acceptable, but not together. The customer should retry their request with only one set of credentials.
Example of an ErrorInfo when accessing “pubsub.googleapis.com” service with overloaded credentials.
{ reason: “OVERLOADED_CREDENTIALS” domain: “googleapis.com” metadata { “consumer”:“projects/123456” “service”: “pubsub.googleapis.com” } }
Implementations§
Source§impl ErrorReason
impl ErrorReason
Source§impl ErrorReason
impl ErrorReason
Sourcepub fn as_str_name(&self) -> &'static str
pub fn as_str_name(&self) -> &'static str
String value of the enum field names used in the ProtoBuf definition.
The values are not transformed in any way and thus are considered stable (if the ProtoBuf definition does not change) and safe for programmatic use.
Sourcepub fn from_str_name(value: &str) -> Option<ErrorReason>
pub fn from_str_name(value: &str) -> Option<ErrorReason>
Creates an enum from field names used in the ProtoBuf definition.
Trait Implementations§
Source§impl Clone for ErrorReason
impl Clone for ErrorReason
Source§fn clone(&self) -> ErrorReason
fn clone(&self) -> ErrorReason
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreSource§impl Debug for ErrorReason
impl Debug for ErrorReason
Source§impl Default for ErrorReason
impl Default for ErrorReason
Source§fn default() -> ErrorReason
fn default() -> ErrorReason
Source§impl Hash for ErrorReason
impl Hash for ErrorReason
Source§impl Ord for ErrorReason
impl Ord for ErrorReason
Source§fn cmp(&self, other: &ErrorReason) -> Ordering
fn cmp(&self, other: &ErrorReason) -> Ordering
1.21.0 · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for ErrorReason
impl PartialEq for ErrorReason
Source§impl PartialOrd for ErrorReason
impl PartialOrd for ErrorReason
Source§impl TryFrom<i32> for ErrorReason
impl TryFrom<i32> for ErrorReason
Source§type Error = UnknownEnumValue
type Error = UnknownEnumValue
Source§fn try_from(value: i32) -> Result<ErrorReason, UnknownEnumValue>
fn try_from(value: i32) -> Result<ErrorReason, UnknownEnumValue>
impl Copy for ErrorReason
impl Eq for ErrorReason
impl StructuralPartialEq for ErrorReason
Auto Trait Implementations§
impl Freeze for ErrorReason
impl RefUnwindSafe for ErrorReason
impl Send for ErrorReason
impl Sync for ErrorReason
impl Unpin for ErrorReason
impl UnwindSafe for ErrorReason
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T
in a tonic::Request