Error Codes

If an API call fails, no result data is returned. You can locate the cause of the error according to the error code of each API. If an API call fails, HTTP status code 3xx, 4xx or 5xx is returned. The response body contains the specific error code and information.

Error Response Syntax

When an error occurs, the response header information contains:

  • Content-Type: application/xml

  • HTTP error status code 3xx, 4xx, or 5xx

The response body also contains information about the error. The following is an error response example that shows common elements in the Representational State Transfer (REST) error response body.

<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>NoSuchKey</Code>
<Message>The resource you requested does not exist</Message>
<Resource>/example-bucket/object</Resource>
<RequestId>001B21A61C6C0000013402C4616D5285</RequestId>
<HostId>RkRCRDJENDc5MzdGQkQ4OUY3MTI4NTQ3NDk2Mjg0M0FB
QUFBQUFBYmJiYmJiYmJD</HostId>
</Error>

Table 1 describes the meaning of each element.

Table 1 Error response elements

Element

Description

Error

Root element that describes the error in an XML response body

Code

HTTP return code that corresponds to the error in the XML response body. For details about error codes, see Table 2.

Message

Details the error in the XML error response body. For details about error messages, see Table 2.

RequestId

ID of the request whose error response is returned. The ID is used for locating the error.

HostId

ID of the server that returns an error response

Resource

Bucket or object related to an error.

Note

Some error responses contain more detailed information. It is recommended that all error information be logged for easier rectification of errors.

Description

If OBS encounters an error when processing a request, a response containing the error code and description is returned. Table 2 describes the error codes of OBS.

Table 2 Error codes

Status Code

Error Code

Error Message

Solution

301 Moved Permanently

PermanentRedirect

The requested bucket can be accessed only through the specified address. Send subsequent requests to the address.

Send the request to the returned redirection address.

301 Moved Permanently

WebsiteRedirect

The website request lacks bucketName.

Put the bucket name in the request and try again.

307 Moved Temporarily

TemporaryRedirect

Temporary redirection. If the DNS is updated, the request is redirected to the bucket.

The system automatically redirects the request or sends the request to the redirection address.

400 Bad Request

BadDigest

The specified value of Content-MD5 does not match the value received by OBS.

Check whether the MD5 value carried in the header is the same as that calculated by the message body.

400 Bad Request

BadDomainName

The domain name is invalid.

Use a valid domain name.

400 Bad Request

BadRequest

Invalid request parameters.

Modify the parameters according to the error details in the message body.

400 Bad Request

CustomDomainAreadyExist

The configured domain already exists.

It has been configured and does not need to be configured again.

400 Bad Request

CustomDomainNotExist

Delete the domain that does not exist.

It is not configured or has been deleted. You do not need to delete it.

400 Bad Request

EntityTooLarge

  • The size of the file uploaded using the PUT, POST, or Append methods of SDKs or APIs exceeds 5 GB.

  • The part uploaded is larger than 5 GB in size.

  • The size of the bucket configurations exceeds 20 KB.

  • The file size exceeds the upper limit defined in the policy of the POST form.

  • The size of the file uploaded using the multipart upload of SDKs or APIs or the resumable upload of SDKs exceeds 48.8 TB.

Modify the conditions specified in the upload policy or reduce the object size.

400 Bad Request

EntityTooSmall

  • The part uploaded, except the last one, is smaller than 100 KB.

  • The file size is smaller than the lower limit defined in the policy of the POST form.

Modify the conditions specified in the upload policy or increase the object size.

400 Bad Request

IllegalLocationConstraintException

A request without Location is sent for creating a bucket in a non-default region.

Send the bucket creation request to the default region, or send the request with the Location of the non-default region.

400 Bad Request

IncompleteBody

No complete request body is received due to network or other problems.

Upload the object again.

400 Bad Request

IncorrectNumberOfFilesInPost Request

Each POST request must contain one file to be uploaded.

Carry a file to be uploaded.

400 Bad Request

InvalidArgument

Invalid parameter.

Modify the parameter according to the error details in the message body.

400 Bad Request

InvalidBucket

The bucket to be accessed does not exist.

Change the bucket name.

400 Bad Request

InvalidBucketName

The bucket name specified in the request is invalid, which may have exceeded the maximum length, or contain special characters that are not allowed.

Change the bucket name.

400 Bad Request

InvalidContentLength

Invalid Content-Length value.

Check the encapsulation header or contact technical support.

400 Bad Request

InvalidDefaultStorageClass

The default storage class is invalid.

Check which storage classes can be used.

400 Bad Request

InvalidEncryptionAlgorithmError

Incorrect encryption algorithm. The object cannot be decrypted due to incorrect encryption header carried when downloading the SSE-C encrypted object.

Carry the correct encryption header when downloading the object.

400 Bad Request

InvalidLocationConstraint

The specified Location in the bucket creation request is invalid or does not exist.

Correct the Location in the bucket creation request.

400 Bad Request

InvalidPart

One or more specified parts are not found. The parts may not be uploaded or the specified entity tags (ETags) do not match the parts' ETags.

Merge the parts correctly according to the ETags.

400 Bad Request

InvalidPartOrder

Parts are not listed in ascending order by part number.

Sort the parts in ascending order and merge them again.

400 Bad Request

InvalidPolicyDocument

The content of the form does not meet the conditions specified in the policy document.

Modify the policy in the constructed form according to the error details in the message body and try again.

400 Bad Request

InvalidRedirectLocation

Invalid redirect location.

Specifies the correct IP address.

400 Bad Request

InvalidRequest

Invalid request.

Modify the parameter according to the error details in the message body.

400 Bad Request

InvalidRequestBody

The request body is invalid. The request requires a message body but no message body is uploaded.

Upload the message body in the correct format.

400 Bad Request

InvalidTargetBucketForLogging

The delivery group has no ACL permission for the target bucket.

Configure the target bucket ACL and try again.

400 Bad Request

KeyTooLongError

The provided key is too long.

Use a shorter key.

400 Bad Request

KMS.DisabledException

The customer master key (CMK) is disabled in SSE-KMS mode.

Replace the key and try again, or contact technical support.

400 Bad Request

KMS.NotFoundException

The customer master key (CMK) does not exist in SSE-KMS mode.

Retry with the correct CMK.

400 Bad Request

MalformedACLError

The provided XML file is in an incorrect format or does not meet format requirements.

Use the correct XML format to retry.

400 Bad Request

MalformedError

The XML format in the request is incorrect.

Use the correct XML format to retry.

400 Bad Request

MalformedLoggingStatus

The XML format of Logging is incorrect.

Use the correct XML format to retry.

400 Bad Request

MalformedPolicy

The bucket policy does not pass.

Modify the bucket policy according to the error details returned in the message body.

400 Bad Request

MalformedQuotaError

The Quota XML format is incorrect.

Use the correct XML format to retry.

400 Bad Request

MalformedXML

An XML file of a configuration item is in incorrect format.

Use the correct XML format to retry.

400 Bad Request

MaxMessageLengthExceeded

Copying an object does not require a message body in the request.

Remove the message body and retry.

400 Bad Request

MetadataTooLarge

The size of the metadata header has exceeded the upper limit.

Reduce the size of the metadata header.

400 Bad Request

MissingRegion

No region contained in the request and no default region defined in the system.

Carry the region information in the request.

400 Bad Request

MissingRequestBodyError

This error code is returned after you send an empty XML file.

Provide the correct XML file.

400 Bad Request

MissingRequiredHeader

Required headers are missing in the request.

Provide required headers.

400 Bad Request

MissingSecurityHeader

A required header is not provided.

Provide required headers.

400 Bad Request

MultipleContentLengths

There are multiple Content-Length headers.

Check the encapsulation header or contact technical support.

400 Bad Request

TooManyBuckets

You have attempted to create more buckets than allowed.

Delete some buckets and try again.

400 Bad Request

TooManyCustomDomains

Too many user accounts are configured.

Delete some user accounts and try again.

400 Bad Request

TooManyWrongSignature

The request is rejected due to high-frequency errors.

Replace the Access Key and try again.

400 Bad Request

UnexpectedContent

The request requires a message body which is not carried by the client, or the request does not require a message body but the client carries the message body.

Try again according to the instruction.

400 Bad Request

UserKeyMustBeSpecified

This operation is available only to specific users.

Contact technical support.

403 Forbidden

AccessDenied

Access denied, because the request does not carry a date header or the header format is incorrect.

Provide a correct date header in the request.

403 Forbidden

AccessDenied

The object you specified is immutable, can not delete.

Wait until the WORM retention expires and then modify or delete the object.

403 Forbidden

AccessForbidden

Insufficient permission. No CORS configuration exists for the bucket or the CORS rule does not match.

Modify the CORS configuration of the bucket or send the matched OPTIONS request based on the CORS configuration of the bucket.

403 Forbidden

AllAccessDisabled

You have no permission to perform the operation. The bucket name is forbidden.

Change the bucket name.

403 Forbidden

DeregisterUserId

The user has been deregistered.

Top up or re-register.

403 Forbidden

InArrearOrInsufficientBalance

The subscriber owes fees or the account balance is insufficient, and the subscriber does not have the permission to perform an operation.

Top up.

403 Forbidden

InsufficientStorageSpace

Insufficient storage space.

If the quota is exceeded, increase quota or delete some objects.

403 Forbidden

InvalidAccessKeyId

The access key ID provided by the customer does not exist in the system.

Provide correct access key Id.

403 Forbidden

InvalidObjectState

You need to restore Cold objects first before downloading them.

Restore the object first.

403 Forbidden

NotSignedUp

Your account has not been registered with the system. Only a registered account can be used.

Register OBS.

403 Forbidden

RequestTimeTooSkewed

There was a large time offset between the OBS server time and the time when the client initiated a request.

For security purposes, OBS verifies the time offset between the client and server. If the offset is longer than 15 minutes, the OBS server will reject your requests and this error message is reported.

Check whether there is a large time offset between the client time and server time. If there is, adjust the client time based on your local time (UTC) and try again.

403 Forbidden

SignatureDoesNotMatch

The provided signature does not match the signature calculated by OBS.

Check your secret access key and signature algorithm.

403 Forbidden

VirtualHostDomainRequired

Virtual hosting access domain name is not used.

Use the virtual hosting access domain name. For details, see Constructing a Request.

403 Forbidden

Unauthorized

The user has not been authenticated in real name.

Authenticate the user's real name and try again.

403 Forbidden

RequestPayerDenied

This is a requester-pays bucket.

Carry the header x-obs-request-payer: requester in the access request.

404 Not Found

NoSuchBucket

The specified bucket does not exist.

Create a bucket and perform the operation again.

404 Not Found

NoSuchBucketPolicy

No bucket policy exists.

Configure a bucket policy.

404 Not Found

NoSuchCORSConfiguration

No CORS configuration exists.

Configure CORS first.

404 Not Found

NoSuchCustomDomain

The requested user account does not exist.

Set a user account first.

404 Not Found

NoSuchKey

The specified key does not exist.

Upload the object first.

404 Not Found

NoSuchLifecycleConfiguration

The requested lifecycle rule does not exist.

Configure a lifecycle rule first.

404 Not Found

NoSuchUpload

The specified multipart upload does not exist. The upload ID does not exist or the multipart upload has been terminated or completed.

Use the existing part or reinitialize the part.

404 Not Found

NoSuchVersion

The specified version ID does not match any existing version.

Use a correct version ID.

404 Not Found

NoSuchWebsiteConfiguration

The requested website does not exist.

Configure the website first.

405 Method Not Allowed

MethodNotAllowed

The specified method is not allowed against the requested resource.

The message "Specified method is not supported." is returned.

The method is not allowed.

405 Method Not Allowed

FsNotSupport

POSIX buckets do not support this API.

The method is not allowed.

408 Request Timeout

RequestTimeout

The socket connection to the server has no read or write operations within the timeout period.

Check the network and try again, or contact technical support.

409 Conflict

BucketAlreadyExists

The requested bucket name already exists. The bucket namespace is shared by all users of OBS. Select another name and retry.

Change the bucket name.

409 Conflict

BucketAlreadyOwnedByYou

Your previous request for creating the namesake bucket succeeded and you already own it.

No more buckets need to be created.

409 Conflict

BucketNotEmpty

The bucket that you tried to delete is not empty.

Delete the objects in the bucket and then delete the bucket.

409 Conflict

InvalidBucketState

Invalid bucket status. After cross-region replication is configured, bucket versioning cannot be disabled.

Enable bucket versioning or cancel cross-region replication.

409 Conflict

OperationAborted

A conflicting operation is being performed on this resource. Retry later.

Try again later.

409 Conflict

ServiceNotSupported

The request method is not supported by the server.

Contact technical support.

409 ObjectNotAppendable

ObjectNotAppendable

The object is not appendable.

Check the bucket type. Parallel file systems do not support append upload. Check the object type. Cold objects are not appendable.

411 Length Required

MissingContentLength

The HTTP header Content-Length is not provided.

Provide the Content-Length header.

412 Precondition Failed

PreconditionFailed

At least one of the specified preconditions is not met.

Modify according to the condition prompt in the returned message body.

414 URI Too Long

Request-URI Too Large

The URI used in the request was too long.

Shorten the URI length.

416 Client Requested Range Not Satisfiable

InvalidRange

The requested range cannot be obtained.

Retry with the correct range.

500 Internal Server Error

InternalError

An internal error occurs. Retry later.

Contact technical support.

501 Not Implemented

ServiceNotImplemented

The request method is not implemented by the server.

Contact technical support.

503 Service Unavailable

ServiceUnavailable

The server is overloaded or has internal errors.

Try later or contact technical support.

503 Service Unavailable

SlowDown

Too frequent requests. Reduce your request frequency.

Too frequent requests. Reduce your request frequency.