The reason of the error. This is a constant value that identifies the proximate cause of the error. Error reasons are unique within a particular domain of errors. This should be at most 63 characters and match a regular expression of [A-Z][A-Z0-9_]+[A-Z0-9], which represents UPPER_SNAKE_CASE.
domain
string
The logical grouping to which the "reason" belongs. The error domain is typically the registered service name of the tool or product that generates the error. Example: "pubsub.googleapis.com". If the error is generated by some common infrastructure, the error domain must be a globally unique value that identifies the infrastructure. For Google API infrastructure, the error domain is "googleapis.com".
metadata
map<string, string>
Additional structured details about this error.
Keys must match a regular expression of [a-z][a-zA-Z0-9-_]+ but should ideally be lowerCamelCase. Also, they must be limited to 64 characters in length. When identifying the current value of an exceeded limit, the units should be contained in the key, not the value. For example, rather than {"instanceLimit": "100/request"}, should be returned as, {"instanceLimitPerRequest": "100"}, if the client exceeds the number of instances that can be created in a single (batch) request.
ResourceInfo
Describes the resource that is being accessed.
Fields
resource_type
string
A name for the type of resource being accessed, e.g. "sql table", "cloud storage bucket", "file", "Google calendar"; or the type URL of the resource: e.g. "type.googleapis.com/google.pubsub.v1.Topic".
resource_name
string
The name of the resource being accessed. For example, a shared calendar name: "example.com_4fghdhgsrgh@group.calendar.google.com", if the current error is google.rpc.Code.PERMISSION_DENIED.
owner
string
The owner of the resource (optional). For example, "user:" or "project:".
description
string
Describes what error is encountered when accessing this resource. For example, updating a cloud project may require the writer permission on the developer console project.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-07-02 UTC."],[[["\u003cp\u003e\u003ccode\u003eErrorInfo\u003c/code\u003e provides structured details about the cause of an error, including the \u003ccode\u003ereason\u003c/code\u003e, \u003ccode\u003edomain\u003c/code\u003e, and \u003ccode\u003emetadata\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003ereason\u003c/code\u003e field in \u003ccode\u003eErrorInfo\u003c/code\u003e indicates the specific cause of the error using UPPER_SNAKE_CASE format, while the \u003ccode\u003edomain\u003c/code\u003e specifies the service or infrastructure where the error occurred.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003emetadata\u003c/code\u003e field in \u003ccode\u003eErrorInfo\u003c/code\u003e offers additional context about the error, with keys that are in lowerCamelCase format and limited to 64 characters.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eResourceInfo\u003c/code\u003e details the specific resource being accessed, including its \u003ccode\u003eresource_type\u003c/code\u003e, \u003ccode\u003eresource_name\u003c/code\u003e, \u003ccode\u003eowner\u003c/code\u003e, and a \u003ccode\u003edescription\u003c/code\u003e of any access errors.\u003c/p\u003e\n"],["\u003cp\u003eErrorInfo can describe an error like an API not being enabled or a resource like a region being out of stock, in which case the metadata will contain information such as the specific API that is not enabled or the regions that are available.\u003c/p\u003e\n"]]],[],null,["# Package google.rpc\n\nIndex\n-----\n\n- [ErrorInfo](/bigquery/docs/reference/migration/rpc/google.rpc#google.rpc.ErrorInfo) (message)\n- [ResourceInfo](/bigquery/docs/reference/migration/rpc/google.rpc#google.rpc.ResourceInfo) (message)\n\nErrorInfo\n---------\n\nDescribes the cause of the error with structured details.\n\nExample of an error when contacting the \"pubsub.googleapis.com\" API when it is not enabled: \n\n { \"reason\": \"API_DISABLED\"\n \"domain\": \"googleapis.com\"\n \"metadata\": {\n \"resource\": \"projects/123\",\n \"service\": \"pubsub.googleapis.com\"\n }\n }\n\nThis response indicates that the pubsub.googleapis.com API is not enabled.\n\nExample of an error that is returned when attempting to create a Spanner instance in a region that is out of stock: \n\n { \"reason\": \"STOCKOUT\"\n \"domain\": \"spanner.googleapis.com\",\n \"metadata\": {\n \"availableRegions\": \"us-central1,us-east2\"\n }\n }\n\nResourceInfo\n------------\n\nDescribes the resource that is being accessed."]]