Table B-1 Google Error Codes
Exception |
Cause |
Status Level |
---|---|---|
Exception thrown when an error status code is detected in an HTTP response to a Google API. |
Specific causes and responses are enumerated below. |
|
GoogleJsonResponseException with HTTP Response (see note) 408 - Client Timeout 500 - Server Error 503 - Unavailable |
These response codes are generated in response to transient errors on the server. |
Retry |
GoogleJsonResponseException with HTTP Response (see note) 404 - Not Found |
This code indicates the requested resource doesn't exist. |
Success – If the driver was processing a query, a Not Found is a valid response. Error – If the driver was retrieving an object based on an association. |
GoogleJsonResponseException with HTTP Response (see note) 400 - Bad Request 405 - Bad Method 406 - Not Acceptable 409 - Conflict 410 - Gone 411 - Length Required 412 - Precondition Failed 413 - Entity Too Large 414 - Request Too Long 415 - Unsupported Type |
These errors are caused by problems in the data or structure of the transmitted message. The driver can't repair and re-transmit but is not in a fatal state. |
Error |
Exception |
Cause |
Status Level |
GoogleJsonResponseException with HTTP Response (see note) 401 - Unauthorized 407 - Proxy Authentication Required |
The client is unauthorized |
Fatal |
GoogleJsonResponseException with HTTP Response (see note) 403 - Forbidden |
The client is forbidden to make the specific request. Generally, this is a fatal condition the driver can't correct. For example, this error will occur when the driver issues a request for an OAuth2 scope that hasn't been authorized on the admin delegation. If the Reason on the exception is RateLimitExceeded, the driver will issue a retry AFTER attempting to use Google's exponential back-off algorithm on 5 consecutive requests. RateLimitExceeded vs QuotaExceeded RateLimitExceeded is a transient condition where the driver issues too many requests too quickly. A user's quota for a given service is exceeded when the driver issues too many requests in a 24-hour period to that service. That condition can't be resolved by back-off. Contact Google to request a higher quota. Read about quotas and resolving this issue in Appendix D – Google API Quotas. |
Fatal, unless the Reason code is "RateLimitExceeded". |
Interrupted I/O operations |
Retry |
|
An error occurred in Google while processing a request |
Error |
|
This is a connection exception received from Google after the driver has successfully authenticated. |
Retry |
Exception |
Cause |
Status Level |
The Google Entry ID requested is invalid |
Error |
|
This exception indicates that a query failed to retrieve a valid object |
If the exception is a result of a query the status level is Success, since a query that doesn't resolve to an object is not an error. If the exception is a result of requesting a Google object based on an Association value, the Status Level will be Error. |
|
This exception indicates an attempt to update an object based on an expired object ID. |
Error |
|
This exception indicates the driver has requested a service it is not allowed to access. |
Error |
|
com.google.gdata.util.Service Exception with an error description of "Internal Server Error" |
The Google APIs encountered an undefined server error when processing a request. |
Retry |
Indicates a malformed URL was received |
Error |
|
com.google.api.client.auth. oauth2.TokenResponseException with error 401 Unauthorized |
Indicates that the service account is not authorized to access the service endpoint the driver attempted to use |
Fatal |
com.google.api.client.googleapis.json.GoogleJsonResponse Exception with error detail of: Access Not Configured. Gmail API has not been used in project |
Indicates that the Gmail API has not been enabled in the service account's Developer's console project. |
Error |
NOTE:For the references to “HTTP Response” in this table see this link: https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html