Please note that the contents of this offline web site may be out of date. To access the most recent documentation visit the online version .
Note that links that point to online resources are green in color and will open in a new window.
We would love it if you could give us feedback about this material by filling this form (You have to be online to fill it)



Status Codes

The following document provides reference information about the error messages and status codes that Google Cloud Storage uses.

Contents

  1. Error Response Format
  2. HTTP Status and Error Codes

Error Response Format

Google Cloud Storage uses the standard HTTP error reporting format. Successful requests return HTTP status codes in the 2xx range. Failed requests return status codes in the 4xx and 5xx ranges. Requests that require a redirect returns status codes in the 3xx range. Error responses usually include an XML document in the response body, which contains information about the error.

The following is an example of an error response.

HTTP/1.1 409 Conflict
Content-Type: application/xml
Content-Length: 182
Date: Wed, 03 Mar 2010 00:22:00 GMT
Expires: Wed, 03 Mar 2010 00:22:00 GMT
Cache-Control: private, max-age=0

<?xml version='1.0' encoding='utf-8'?>
<Error>
  <Code>BucketNameUnavailable</Code>
  <Message>
    The requested bucket name is not available. The bucket namespace is shared by all users
    of the system. Please select a different name and try again.
  </Message>
</Error>

The following table describes the elements that are in the response body:

Element Description
Error Container for the error information.
Code Error name.
Message Description of the error.

Back to top

HTTP Status and Error Codes

Provides descriptions of the HTTP status and error codes that Google Cloud Storage uses.

301—Moved Permanently

Error Name Description
PermanentRedirect The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.

304—Not Modified

Error Name Description
NotModified Not modified.

307—Temporary Redirect

Error Name Description
Redirect Temporary redirect.
TemporaryRedirect You are being redirected to the bucket while DNS updates.

308—Resume Incomplete

Error Name Description
Resume Incomplete Indicates an incomplete resumable upload and provides the range of bytes already received by Google Cloud Storage.

400—Bad Request

Error Name Description
AmbiguousGrantByEmailAddress The e-mail address you provided is associated with more than one account.
BadDigest The Content-MD5 you specified did not match what we received.
CredentialsNotSupported This request does not support credentials.
EntityTooSmall Your proposed upload is smaller than the minimum allowed object size.
EntityTooLarge Your proposed upload exceeds the maximum allowed object size.
ExcessHeaderValues Multiple HTTP header values where one was expected.
ExpiredToken The provided token has expired.
IncompleteBody You did not provide the number of bytes specified by the Content-Length HTTP header.
IncorrectNumberOfFilesInPostRequest POST requires exactly one file upload per request.
InlineDataTooLarge Inline data exceeds the maximum allowed size.
InvalidArgument Invalid argument.
InvalidBucketName The specified bucket is not valid.
InvalidDigest The Content-MD5 you specified was invalid.
InvalidLocationConstraint The specified location constraint is not valid. You cannot specify locations with the Google Cloud Storage API.
InvalidPolicyDocument The content of the form does not meet the conditions specified in the policy document.
InvalidStorageClass The storage class you specified is not valid.
InvalidToken The provided token is malformed or otherwise invalid.
InvalidURI Couldn't parse the specified URI.
KeyTooLong Your object name is too long.
MalformedACLError The XML you provided was not well-formed or did not validate against our published schema.
MalformedHeaderValue An HTTP header value was malformed.
MalformedPOSTRequest The body of your POST request is not well-formed multipart/form-data.
MalformedXML This happens when the user sends a malformed XML (XML that doesn't conform to the published XSD) for the configuration.
MaxMessageLengthExceeded Your request was too big.
MaxPostPreDataLengthExceededError Your POST request fields preceding the upload file were too large.
MetadataTooLarge Your metadata headers exceed the maximum allowed metadata size.
MissingRequestBodyError This happens when the user sends an empty XML document as a request.
MissingSecurityHeader Your request was missing a required header.
NoLoggingStatusForKey There is no such thing as a logging status sub-resource for a key.
NotImplemented A header or query you provided requested a function that is not implemented.
RequestIsNotMultiPartContent Bucket POST must be of the enclosure-type multipart/form-data.
RequestTimeout Your socket connection to the server was not read from or written to within the timeout period.
TokenRefreshRequired The provided token must be refreshed.
TooManyBuckets You have attempted to create more buckets than allowed.
UnexpectedContent This request does not support content.
UnresolvableGrantByEmailAddress The e-mail address you provided does not match any account on record.
UnsupportedAcl The ACL you specified is not supported. For more information about the ACLs that Google Cloud Storage supports, see Access Control .
UserKeyMustBeSpecified The bucket POST must contain the specified field name. If it is specified, please check the order of the fields.

Back to top

401—Unauthorized

Error Name Description
Unauthorized

Indicates that an unauthorized request has been received by Google Cloud Storage.
The request header is invalid or missing.
For more information, see RFC 2616 §10.4.1 .
The standard practice to handle this error is one or both of the following:

  1. Keep track of when you obtained the current access token and refresh it any time you find it's older than the life span returned when it was acquired (normally one hour).
  2. Catch the 401 exception, automatically acquire a new access token and retry the request.

Back to top

403—Forbidden

Error Name Description
AccessDenied Access denied.
AccountProblem There is a problem with your Google account that prevents the operation from completing successfully. Please contact customer service.
AnotherUserOwnsDomain The bucket you tried to create is a domain name owned by another user.
BucketAlreadyExists The requested bucket name is not available. The bucket namespace is shared by all users of the system. Please select a different name and try again.
DomainVerificationRequired The bucket you tried to create requires domain ownership verification. For more information, see Bucket and Object Naming Guidelines .
InsufficientQuota The user does not have enough quota to complete this operation.
InternalError We encountered an internal error. Please try again.
InvalidAccessKeyId The User Id you provided does not exist in our records.
InvalidPayer All access to this object has been disabled.
InvalidSecurity The provided security credentials are not valid.
NotSignedUp Your account is not signed up for this service. You can sign up at http://google.com/accounts.
RequestTimeTooSkewed The difference between the request time and the server's time is too large.
SignatureDoesNotMatch The request signature we calculated does not match the signature you provided. Check your Google secret and signing method.

Back to top

404—Not Found

Error Name Description
AccessDenied Access denied.
NoSuchBucket The specified bucket does not exist.
NoSuchKey The specified object name does not exist.

405—Method Not Allowed

Error Name Description
AccessDenied Access denied.
MethodNotAllowed The specified method is not allowed against this resource.

409—Conflict

Error Name Description
BucketAlreadyOwnedByYou Your previous request to create the named bucket succeeded and you already own it.
BucketNameUnavailable The requested bucket name is not available. The bucket namespace is shared by all users of the system. Please select a different name and try again. This error can occur when you try to create a bucket name that already exists or you try to create a bucket name that does not meet the bucket naming requirements.
BucketNotEmpty The bucket you tried to delete is not empty.
OperationAborted A conflicting conditional operation is currently in progress against this resource. Please try again.

411—Length Required

Error Name Description
MissingContentLength You must provide the Content-Length HTTP header.

Back to top

412—Precondition Failed

Error Name Description
PreconditionFailed At least one of the pre-conditions you specified did not hold.

416—Requested Range Not Satisfiable

Error Name Description
InvalidRange The requested range cannot be satisfied.

500—Internal Server Error

Error Name Description
InternalError We encountered an internal error. Please try again.

503—Service Unavailable

Error Name Description
SlowDown Please reduce your request rate.

Back to top

Authentication required

You need to be signed in with Google+ to do that.

Signing you in...

Google Developers needs your permission to do that.