Reference documentation and code samples for the Google API Common Protos Client class ErrorInfo.
Describes the cause of the error with structured details.
Example of an error when contacting the "pubsub.googleapis.com" API when it
is not enabled:
{ "reason": "API_DISABLED"
"domain": "googleapis.com"
"metadata": {
"resource": "projects/123",
"service": "pubsub.googleapis.com"
}
}
This response indicates that the pubsub.googleapis.com API is not enabled.
Example of an error that is returned when attempting to create a Spanner
instance in a region that is out of stock:
{ "reason": "STOCKOUT"
"domain": "spanner.googleapis.com",
"metadata": {
"availableRegions": "us-central1,us-east2"
}
}
Generated from protobuf messagegoogle.rpc.ErrorInfo
Namespace
Google \ Rpc
Methods
__construct
Constructor.
Parameters
Name
Description
data
array
Optional. Data for populating the Message object.
↳ reason
string
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".
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.
getReason
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.
Returns
Type
Description
string
setReason
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.
Parameter
Name
Description
var
string
Returns
Type
Description
$this
getDomain
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".
Returns
Type
Description
string
setDomain
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".
Parameter
Name
Description
var
string
Returns
Type
Description
$this
getMetadata
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.
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.
[[["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-09-04 UTC."],[],[],null,["# Google API Common Protos Client - Class ErrorInfo (4.12.3)\n\nVersion latestkeyboard_arrow_down\n\n- [4.12.3 (latest)](/php/docs/reference/common-protos/latest/Rpc.ErrorInfo)\n- [4.12.2](/php/docs/reference/common-protos/4.12.2/Rpc.ErrorInfo)\n- [4.11.0](/php/docs/reference/common-protos/4.11.0/Rpc.ErrorInfo)\n- [4.10.0](/php/docs/reference/common-protos/4.10.0/Rpc.ErrorInfo)\n- [4.9.0](/php/docs/reference/common-protos/4.9.0/Rpc.ErrorInfo)\n- [4.8.3](/php/docs/reference/common-protos/4.8.3/Rpc.ErrorInfo) \nReference documentation and code samples for the Google API Common Protos Client class ErrorInfo.\n\nDescribes the cause of the error with structured details.\n\nExample of an error when contacting the \"pubsub.googleapis.com\" API when it\nis not enabled:\n{ \"reason\": \"API_DISABLED\"\n\"domain\": \"googleapis.com\"\n\"metadata\": {\n\"resource\": \"projects/123\",\n\"service\": \"pubsub.googleapis.com\"\n}\n}\nThis response indicates that the pubsub.googleapis.com API is not enabled.\nExample of an error that is returned when attempting to create a Spanner\ninstance in a region that is out of stock:\n{ \"reason\": \"STOCKOUT\"\n\"domain\": \"spanner.googleapis.com\",\n\"metadata\": {\n\"availableRegions\": \"us-central1,us-east2\"\n}\n}\n\nGenerated from protobuf message `google.rpc.ErrorInfo`\n\nNamespace\n---------\n\nGoogle \\\\ Rpc\n\nMethods\n-------\n\n### __construct\n\nConstructor.\n\n### getReason\n\nThe reason of the error. This is a constant value that identifies the\nproximate cause of the error. Error reasons are unique within a particular\ndomain of errors. This should be at most 63 characters and match a\nregular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`, which represents\nUPPER_SNAKE_CASE.\n\n### setReason\n\nThe reason of the error. This is a constant value that identifies the\nproximate cause of the error. Error reasons are unique within a particular\ndomain of errors. This should be at most 63 characters and match a\nregular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`, which represents\nUPPER_SNAKE_CASE.\n\n### getDomain\n\nThe logical grouping to which the \"reason\" belongs. The error domain\nis typically the registered service name of the tool or product that\ngenerates the error. Example: \"pubsub.googleapis.com\". If the error is\ngenerated by some common infrastructure, the error domain must be a\nglobally unique value that identifies the infrastructure. For Google API\ninfrastructure, the error domain is \"googleapis.com\".\n\n### setDomain\n\nThe logical grouping to which the \"reason\" belongs. The error domain\nis typically the registered service name of the tool or product that\ngenerates the error. Example: \"pubsub.googleapis.com\". If the error is\ngenerated by some common infrastructure, the error domain must be a\nglobally unique value that identifies the infrastructure. For Google API\ninfrastructure, the error domain is \"googleapis.com\".\n\n### getMetadata\n\nAdditional structured details about this error.\n\nKeys must match a regular expression of `[a-z][a-zA-Z0-9-_]+` but should\nideally be lowerCamelCase. Also, they must be limited to 64 characters in\nlength. When identifying the current value of an exceeded limit, the units\nshould be contained in the key, not the value. For example, rather than\n`{\"instanceLimit\": \"100/request\"}`, should be returned as,\n`{\"instanceLimitPerRequest\": \"100\"}`, if the client exceeds the number of\ninstances that can be created in a single (batch) request.\n\n### setMetadata\n\nAdditional structured details about this error.\n\nKeys must match a regular expression of `[a-z][a-zA-Z0-9-_]+` but should\nideally be lowerCamelCase. Also, they must be limited to 64 characters in\nlength. When identifying the current value of an exceeded limit, the units\nshould be contained in the key, not the value. For example, rather than\n`{\"instanceLimit\": \"100/request\"}`, should be returned as,\n`{\"instanceLimitPerRequest\": \"100\"}`, if the client exceeds the number of\ninstances that can be created in a single (batch) request."]]