B.0 Appendix – Google Error Codes

Table B-1 Google Error Codes

Exception

Cause

Status Level

GoogleJsonResponseException or HttpResponseException

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".

Java.io.IOException

Interrupted I/O operations

Retry

com.google.gdata.util.Service Exception

An error occurred in Google while processing a request

Error

com.google.gdata.util. AuthenticationException

This is a connection exception received from Google after the driver has successfully authenticated.

Retry

Exception

Cause

Status Level

com.google.gdata.util.Invalid EntryException

The Google Entry ID requested is invalid

Error

com.google.gdata.util.Resource NotFoundException

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.

com.google.gdata.util.Version ConflictException

This exception indicates an attempt to update an object based on an expired object ID.

Error

com.google.gdata.util.Service ForbiddenException

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

Java.net.MalformedURL Exception

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