All Products
Search
Document Center

Object Storage Service:HTTP 400 errors

Last Updated:Dec 06, 2025

This topic describes the causes of and solutions for HTTP 400 errors that are returned by OSS.

BadReplicationLocation

This error is returned if the destination region specified in the cross-region replication (CRR) configuration does not exist.

The replication location you choose is invalid

  • Cause: The destination region specified in the cross-region replication (CRR) configuration does not exist.

  • Solution: Verify that the region of the destination bucket is valid.

BadRequest

This error is returned if a request is missing required cross-origin request headers.

Insufficient information. Origin request header needed

  • Cause: The Origin request header is missing from the preflight request for a cross-origin request.

  • Solution: Before sending a cross-origin request, a browser sends a preflight request (OPTIONS) to OSS. This request must include the Origin header to identify the source domain of the cross-origin request. This ensures that the cross-origin resource sharing (CORS) policy is matched correctly.

    origin

Insufficient information. Request Access-Control-Request-Method header needed

  • Cause: The Access-Control-Request-Method request header is missing from the preflight request for a cross-origin request.

  • Solution: Before sending a cross-origin request, a browser sends a preflight request (OPTIONS) to OSS. This request must include the Access-Control-Request-Method header to identify the HTTP method used by the actual request. This allows OSS to verify whether the method is permitted.

    method

BucketReplicationAlreadyExist

This error is returned if you try to create a duplicate replication rule between buckets that already have a CRR relationship.

Bucket replication already exists

  • Cause: A CRR relationship already exists between the source bucket and the destination bucket.

  • Solution: To configure a new CRR rule, you must first delete the existing CRR rule.

CORSRuleBeyondLimit

This error is returned if the number of CORS rules configured for a bucket exceeds the system limit.

The CORS Rules num is beyond limit

  • Cause: The number of CORS rules configured for the bucket exceeds the limit.

  • Solution: A bucket can have a maximum of 10 CORS rules. Exceeding this limit can make the cross-origin access policy too complex. You can merge similar cross-origin configurations or delete unnecessary rules. For more information, see PutBucketCors.

DailyInventoryExceedLimit

This error is returned if the number of objects in a bucket exceeds the limit when you export a manifest file on a daily basis.

daily inventory object count exceed limit

  • Cause: The number of objects in the bucket exceeds the limit for daily manifest file exports.

  • Solution: When you export a manifest file on a daily basis, the number of objects in the bucket must be less than 10 billion.

    If the number of objects in the bucket is 10 billion or more, export the manifest file on a weekly basis instead.

EntityTooLarge

This error is returned if the size of the uploaded object exceeds the maximum allowed size.

Your proposed upload exceeds the maximum allowed size or Source object Length exceeds the maximum allowed size

  • Cause: The size of the uploaded object exceeds the maximum allowed size.

  • Solution: When you upload a file using the PostObject operation, set valid values for the form fields in the PostPolicy. Use the content-length-range condition to specify the allowed size range for the uploaded object. For more information, see Appendix: Post Policy.

EntityTooSmall

This error is returned if the size of the uploaded object is smaller than the minimum allowed size.

Your proposed upload smaller than the minimum allowed size

  • Cause: The size of the uploaded object is smaller than the minimum allowed size.

  • Solution: When you upload a file using the PostObject operation, set valid values for the form fields in the PostPolicy. Use the content-length-range condition to specify the allowed size range for the uploaded object.

FieldItemTooLong

This error is returned if the size of a form field in a PostObject request exceeds the limit.

Your name of form field is too long

  • Cause: A form field in the PostObject request is too large.

  • Solution: Except for the file form field, the size of other form fields cannot exceed 4 KB. For more information, see Troubleshoot PostObject errors.

FilePartNotExist

This error is returned if a requested part has been deleted during a multipart upload.

The Part you read had been deleted

  • Cause: The requested part has been deleted.

  • Solution: Verify that all required parts have been successfully uploaded and have not been deleted. You can check the status of uploaded parts by calling the CompleteMultipartUpload operation.

ImageTooLarge

This error is returned if the size of the source image exceeds the system limit during image processing.

Maximal size of image supported is

  • Cause: The image size exceeds the limit.

  • Solution: Make sure that the source image file meets the following size limits:

    • The size of the source image file cannot exceed 20 MB.

    • When you rotate an image, the width or height of the source image cannot exceed 4,096 pixels.

    • The length of a single side of the source image cannot exceed 30,000 pixels.

IncompleteBody

This error is returned if the number of bytes specified by the Content-Length parameter in a request does not match the number of bytes actually sent.

You did not provide the number of bytes specified by the Content-Length HTTP header

  • Cause: The number of bytes specified by the Content-Length parameter does not match the number of bytes actually sent.

  • Solution: Set the Content-Length parameter to the actual number of bytes sent.

IncorrectNumberOfFilesInPOSTRequest

This error is returned if the number of files in a PostObject request is invalid.

POST requires exactly one file upload per request

  • Cause: The number of files in the PostObject request is invalid. A PostObject request can contain only one file form field.

  • Solution: Make sure that the PostObject request contains only one file form field.

InlineDataTooLarge

Inline data exceeds the maximum allowed size

  • Cause:

    1. Object size limit exceeded: The size of the uploaded file exceeds the limit for the current upload operation.

    2. Hotlink protection configuration limit exceeded: The total size of the Referer whitelist and blacklist configurations exceeds 20 KB.

  • Solution:

    • Scenario 1: Object size limit exceeded

      Adjust the upload method based on the file size:

    • Scenario 2: Hotlink protection configuration limit exceeded

      Delete unnecessary hotlink protection rules to ensure that the total data size of the Referer whitelist and blacklist does not exceed 20 KB.

InvalidArgument

This error is returned if a request parameter is invalid or has an incorrect format. This error code includes multiple specific error messages:

AccessKeyId or Signature is missing in Authorization header value

  • Cause: The AccessKey ID and Signature parameters are missing from the Authorization header calculation method.

  • Solution: Add the AccessKey ID parameter to the Authorization header calculation method and complete the signature calculation as shown in the following signature example.

    Request

    Signature string calculation formula

    Signature string

    PUT /nelson HTTP/1.0 Content-MD5: eB5eJF1ptWaXm4bijSPyxw== Content-Type: text/html Date: Wed, 28 Dec 2022 10:27:41 GMT Host: examplebucket.oss-cn-hangzhou.aliyuncs.com x-oss-meta-author: alice x-oss-meta-magic: abracadabra

    Signature = base64(hmac-sha1(AccessKeySecret,VERB + "\n" + Content-MD5 + "\n"+ Content-Type + "\n" + Date + "\n" + CanonicalizedOSSHeaders+ CanonicalizedResource))

    PUT\n eB5eJF1ptWaXm4bijSPyxw==\n text/html\n Wed, 28 Dec 2022 10:27:41 GMT\n x-oss-meta-magic:abracadabra\nx-oss-meta-author:alice\n/examplebucket/nelson

    Assume that the AccessKey ID is LTAI**************** and the AccessKey secret is yourAccessKeySecret. The following Python code provides an example of how to calculate the signature:

    import hmac
    import hashlib
    import base64
    import os
    
    accessKeySecret = os.getenv('OSS_ACCESS_KEY_SECRET')
    h = hmac.new(accessKeySecret.encode('utf-8'),
                 "PUT\neB5************==\ntext/html\nWed, 28 Dec 2022 10:27:41 GMT\nx-oss-meta-author:alice\nx-oss-meta-magic:abracadabra\n/examplebucket/nelson".encode('utf-8'), hashlib.sha1)
    signature =  base64.encodebytes(h.digest())
    print(signature)

    The calculated signature is 77Dv****************, which is combined with the structure of the Authorization header to form the message body to be sent:

    PUT /nelson HTTP/1.0
    Authorization:OSS qn6q**************:77Dv****************
    Content-Md5: eB5eJF1ptWaXm4bijSPyxw==
    Content-Type: text/html
    Date: Wed, 28 Dec 2022 10:27:41 GMT
    Host: oss-example.oss-cn-hangzhou.aliyuncs.com
    x-oss-meta-author: alice
    x-oss-meta-magic: abracadabra

Authorization header is invalid

  • Cause: An invalid parameter is specified in the Authorization header calculation method.

  • Solution: Troubleshoot the Authorization header calculation based on the following instructions.

    • Calculation method:

      Authorization = "OSS " + AccessKeyId + ":" + Signature
      Signature = base64(hmac-sha1(AccessKeySecret,
                  VERB + "\n"
                  + Content-MD5 + "\n" 
                  + Content-Type + "\n" 
                  + Date + "\n" 
                  + CanonicalizedOSSHeaders
                  + CanonicalizedResource))
    • Parameter descriptions:

      Parameter

      Type

      Required

      Example

      Description

      AccessKeyId

      String

      Yes

      LTAI****************

      The AccessKey ID of the key.

      AccessKeySecret

      String

      Yes

      yourAccessKeySecret

      The AccessKey secret of the key.

      VERB

      Enumeration

      Yes

      PUT

      The HTTP request method, such as PUT, GET, POST, HEAD, DELETE, or OPTIONS.

      \n

      String

      No

      \n

      A line feed.

      Content-MD5

      String

      No

      eB5eJF1ptWaXm4bijSPyxw==

      The MD5 hash of the request content data. To obtain this value, calculate the MD5 hash of the message content (excluding headers) to get a 128-bit number, and then Base64-encode the number. For more information, see RFC2616 Content-MD5.

      This request header can be used to check the integrity of the message (whether the message content is the same as when it was sent). This header can be empty.

      For information about how to calculate the Content-MD5 hash, see Calculate a Content-MD5 hash.

      Content-Type

      String

      No

      application/octet-stream

      The type of the request content. This header can be empty.

      Date

      String

      Yes

      Sun, 22 Nov 2015 08:16:38 GMT

      Important

      The time of the operation. The Date parameter must be in GMT format and cannot be empty.

      If the time difference between the Date in the request and the current time on the OSS server is more than 15 minutes, the OSS server rejects the request and returns an HTTP 403 error.

      CanonicalizedOSSHeaders

      String

      No

      x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n

      The HTTP headers that are prefixed with x-oss- and sorted in lexicographic order. This parameter can be empty.

      • If you set CanonicalizedOSSHeaders to empty, you do not need to add the \n separator at the end.

      • If there is only one CanonicalizedOSSHeaders, you must add the \n separator at the end, for example, x-oss-meta-a\n.

      • If there are multiple CanonicalizedOSSHeaders, you must add the \n separator after each CanonicalizedOSSHeaders, for example, x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n.

      For information about how to construct CanonicalizedOSSHeaders, see Construct CanonicalizedOSSHeaders.

      CanonicalizedResource

      String

      Yes

      /examplebucket/

      The OSS resource that you want to access. This parameter cannot be empty.

      For information about how to construct CanonicalizedResource, see Construct CanonicalizedOSSHeaders.

    • Signature example:

      Request

      Signature string calculation formula

      Signature string

      PUT /nelson HTTP/1.0 Content-MD5: eB5eJF1ptWaXm4bijSPyxw== Content-Type: text/html Date: Wed, 28 Dec 2022 10:27:41 GMT Host: examplebucket.oss-cn-hangzhou.aliyuncs.com x-oss-meta-author: alice x-oss-meta-magic: abracadabra

      Signature = base64(hmac-sha1(AccessKeySecret,VERB + "\n" + Content-MD5 + "\n"+ Content-Type + "\n" + Date + "\n" + CanonicalizedOSSHeaders+ CanonicalizedResource))

      PUT\n eB5eJF1ptWaXm4bijSPyxw==\n text/html\n Wed, 28 Dec 2022 10:27:41 GMT\n x-oss-meta-magic:abracadabra\nx-oss-meta-author:alice\n/examplebucket/nelson

      Assume that the AccessKey ID is LTAI**************** and the AccessKey secret is yourAccessKeySecret. The following Python code provides an example of how to calculate the signature:

      import hmac
      import hashlib
      import base64
      import os
      
      accessKeySecret = os.getenv('OSS_ACCESS_KEY_SECRET')
      h = hmac.new(accessKeySecret.encode('utf-8'),
                   "PUT\neB5************==\ntext/html\nWed, 28 Dec 2022 10:27:41 GMT\nx-oss-meta-author:alice\nx-oss-meta-magic:abracadabra\n/examplebucket/nelson".encode('utf-8'), hashlib.sha1)
      signature =  base64.encodebytes(h.digest())
      print(signature)

      The calculated signature is 77Dv****************, which is combined with the structure of the Authorization header to form the message body to be sent:

      PUT /nelson HTTP/1.0
      Authorization:OSS qn6q**************:77Dv****************
      Content-Md5: eB5eJF1ptWaXm4bijSPyxw==
      Content-Type: text/html
      Date: Wed, 28 Dec 2022 10:27:41 GMT
      Host: oss-example.oss-cn-hangzhou.aliyuncs.com
      x-oss-meta-author: alice
      x-oss-meta-magic: abracadabra

Authorization header is invalid, bad num of Items in Authorization header

  • Cause: An incorrect parameter is specified in the Authorization header calculation method.

  • Solution: Complete the Authorization header calculation based on the parameter descriptions in the following table.

    Parameter

    Type

    Required

    Example

    Description

    AccessKeyId

    String

    Yes

    LTAI****************

    The AccessKey ID of the key.

    AccessKeySecret

    String

    Yes

    yourAccessKeySecret

    The AccessKey secret of the key.

    VERB

    Enumeration

    Yes

    PUT

    The HTTP request method, such as PUT, GET, POST, HEAD, DELETE, or OPTIONS.

    \n

    String

    No

    \n

    A line feed.

    Content-MD5

    String

    No

    eB5eJF1ptWaXm4bijSPyxw==

    The MD5 hash of the request content data. To obtain this value, calculate the MD5 hash of the message content (excluding headers) to get a 128-bit number, and then Base64-encode the number. For more information, see RFC2616 Content-MD5.

    This request header can be used to check the integrity of the message (whether the message content is the same as when it was sent). This header can be empty.

    For information about how to calculate the Content-MD5 hash, see Calculate a Content-MD5 hash.

    Content-Type

    String

    No

    application/octet-stream

    The type of the request content. This header can be empty.

    Date

    String

    Yes

    Sun, 22 Nov 2015 08:16:38 GMT

    The time of the operation. The Date parameter must be in GMT format and cannot be empty.

    Important

    If the time difference between the Date in the request and the current time on the OSS server is more than 15 minutes, the OSS server rejects the request and returns an HTTP 403 error.

    CanonicalizedOSSHeaders

    String

    No

    x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n

    The HTTP headers that are prefixed with x-oss- and sorted in lexicographic order. This parameter can be empty.

    • If you set CanonicalizedOSSHeaders to empty, you do not need to add the \n separator at the end.

    • If there is only one CanonicalizedOSSHeaders, you must add the \n separator at the end, for example, x-oss-meta-a\n.

    • If there are multiple CanonicalizedOSSHeaders, you must add the \n separator after each CanonicalizedOSSHeaders, for example, x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n.

    For information about how to construct CanonicalizedOSSHeaders, see Construct CanonicalizedOSSHeaders.

    CanonicalizedResource

    String

    Yes

    /examplebucket/

    The OSS resource that you want to access. This parameter cannot be empty.

    For information about how to construct CanonicalizedResource, see Construct CanonicalizedOSSHeaders.

Authorization header value is empty

  • Cause: A required parameter in the Authorization header calculation method is empty.

  • Solution: Complete the Authorization header calculation based on the parameter descriptions in the following table.

    Parameter

    Type

    Required

    Example

    Description

    AccessKeyId

    String

    Yes

    LTAI****************

    The AccessKey ID of the key.

    AccessKeySecret

    String

    Yes

    yourAccessKeySecret

    The AccessKey secret of the key.

    VERB

    Enumeration

    Yes

    PUT

    The HTTP request method, such as PUT, GET, POST, HEAD, DELETE, or OPTIONS.

    \n

    String

    No

    \n

    A line feed.

    Content-MD5

    String

    No

    eB5eJF1ptWaXm4bijSPyxw==

    The MD5 hash of the request content data. To obtain this value, calculate the MD5 hash of the message content (excluding headers) to get a 128-bit number, and then Base64-encode the number. For more information, see RFC2616 Content-MD5.

    This request header can be used to check the integrity of the message (whether the message content is the same as when it was sent). This header can be empty.

    For information about how to calculate the Content-MD5 hash, see Calculate a Content-MD5 hash.

    Content-Type

    String

    No

    application/octet-stream

    The type of the request content. This header can be empty.

    Date

    String

    Yes

    Sun, 22 Nov 2015 08:16:38 GMT

    The time of the operation. The Date parameter must be in GMT format and cannot be empty.

    Important

    If the time difference between the Date in the request and the current time on the OSS server is more than 15 minutes, the OSS server rejects the request and returns an HTTP 403 error.

    CanonicalizedOSSHeaders

    String

    No

    x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n

    The HTTP headers that are prefixed with x-oss- and sorted in lexicographic order. This parameter can be empty.

    • If you set CanonicalizedOSSHeaders to empty, you do not need to add the \n separator at the end.

    • If there is only one CanonicalizedOSSHeaders, you must add the \n separator at the end, for example, x-oss-meta-a\n.

    • If there are multiple CanonicalizedOSSHeaders, you must add the \n separator after each CanonicalizedOSSHeaders, for example, x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n.

    For information about how to construct CanonicalizedOSSHeaders, see Construct CanonicalizedOSSHeaders.

    CanonicalizedResource

    String

    Yes

    /examplebucket/

    The OSS resource that you want to access. This parameter cannot be empty.

    For information about how to construct CanonicalizedResource, see Construct CanonicalizedOSSHeaders.

Bad date format

  • Cause: The time parameter is invalid.

  • Solution: The time format must comply with the RFC 1123 standard, for example, Sun, 06 Nov 1994 08:49:37 GMT.

Can not get ip by this host

  • Cause: The Host is invalid.

  • Solution: The Host can be a bucket domain name or an IP address. The bucket domain name format is BucketName.Endpoint, for example, examplebucket.oss-cn-hangzhou.aliyuncs.com. If the Host is an IP address, make sure that the IP address is valid.

Copy Source must mention the source bucket and key: /sourcebucket/sourcekey

  • Cause: The source bucket and source object are not specified when you copy a file.

  • Solution: When you copy a file, you must specify the x-oss-copy-source parameter in the /sourcebucket/sourcekey format. For example, if the source bucket is examplebucket and the source object is exampleobject, set the x-oss-copy-source parameter to /examplebucket/exampleobject.

Either the callback query string parameter or the x-oss-callback header should be specified, not both

  • Cause: The callback parameter is included in both the request URL and the request header.

  • Solution: The callback parameter can be included in either the request URL or the request header, but not both.

Either the callback-var query string parameter or the x-oss-callback-var header should be specified, not both

  • Cause: The callback-var parameter is included in both the request URL and the request header.

  • Solution: The callback-var parameter can be included in either the request URL or the request header, but not both.

Either the Signature query string parameter or the Authorization header should be specified, not both

  • Cause

    In the same request, the Authorization field for signing is present in the request header, and the OSSAccessKeyId, Expires, and Signature fields for signing are present in the request URI. Example:

    PUT /example_file?OSSAccessKeyId=LTAI****************&Expires=1141889120&Signature=vjbyPxybdZaNmGa%2ByT272YEAiv**** HTTP/1.0
    Authorization:OSS qn6q**************:77Dv****************
    Content-Md5: eB5eJF1ptWaXm4bijSPyxw==
    Content-Type: text/html
    Date: Tue, 20 Dec 2022 08:48:18 GMT
    Host: oss-example.oss-cn-hangzhou.aliyuncs.com
  • Solution

    In the same request, use either header signing or URI signing, but not both. The following code provides an example of using only header signing:

    PUT /example_file HTTP/1.0
    Authorization:OSS qn6q**************:77Dv****************
    Content-Md5: eB5eJF1ptWaXm4bijSPyxw==
    Content-Type: text/html
    Date: Tue, 20 Dec 2022 08:48:18 GMT
    Host: oss-example.oss-cn-hangzhou.aliyuncs.com

    The following code provides an example of using only URI signing:

    PUT /example_file?OSSAccessKeyId=LTAI****************&Expires=1141889120&Signature=vjby******** HTTP/1.0
    Content-Md5: eB5eJF1ptWaXm4bijSPyxw==
    Content-Type: text/html
    Date: Tue, 20 Dec 2022 08:48:18 GMT
    Host: oss-example.oss-cn-hangzhou.aliyuncs.com

Invalid Argument. Parameter is invalid

  • Cause: The parameter format is invalid.

  • Solution: See the corresponding API operation in API overview and specify the parameters in the correct format.

Invalid date. Cannot be later than the current time

  • Cause: The time parameter is invalid. The UNIX timestamp is later than the current time.

  • Solution: The UNIX timestamp must be earlier than the current time.

Invalid date. Must be later than 1970-01-01 00:00:00

  • Cause: The time parameter is invalid. The UNIX timestamp is less than 0.

  • Solution: The UNIX timestamp must be greater than 0.

Invalid version id specified

  • Cause: The specified object version ID is invalid.

  • Solution: Call the GetBucketVersions (ListObjectVersions) operation to confirm whether versioning is enabled for the bucket and whether the specified version ID of the object is correct.

KMSMasterKeyID is not applicable if the default sse algorithm is not KMS

  • Cause: The KMSMasterKeyID parameter is specified when the server-side encryption (SSE) algorithm is set to AES256.

  • Solution: The KMSMasterKeyID parameter is required only when the SSE algorithm is set to KMS and a specified key is used for encryption.

KMSMasterKeyID is not applicable if user is not in white list. or SM4 is not applicable if user is not in white list

  • Cause: The user does not have the required permissions.

  • Solution: Only the bucket owner or an authorized RAM user can set encryption rules for a bucket. For more information, see PutBucketEncryption.

No such bucket storage class exists

  • Cause: The specified bucket storage class does not exist.

  • Solution: OSS supports the following storage classes: Standard, Infrequent Access (IA), Archive Storage, Cold Archive, and Deep Cold Archive. For more information, see PutBucket.

OSS authentication requires a valid Date

  • Cause: The Date in the Authorization header is invalid.

  • Solution: The Date parameter indicates the time of the operation and must be in GMT format, for example, Sun, 22 Nov 2015 08:16:38 GMT.

Post body size must be less than 5G

  • Cause: The total length of the body in the PostObject request exceeds 5 GB.

  • Solution: The total length of the body in a PostObject request cannot exceed 5 GB. For more information, see PostObject.

Post request accessKeyId is empty

  • Cause: The OSSAccessKeyId form field is missing from the PostObject request header.

  • Solution: The OSSAccessKeyId form field is required if the bucket is not public-read-write or if the Policy (or Signature) form field is provided.

Post request signature is empty

  • Cause: The signature information is missing from the PostObject request header.

  • Solution: The Signature form field is required if the bucket is not public-read-write or if the OSSAccessKeyId (or Policy) form field is provided. The following steps describe how to calculate the signature:

    1. Create a policy in UTF-8 encoding.

    2. Base64-encode the policy. The result is the value of the Policy form field. Use this value as the string to be signed.

    3. Use the AccessKey secret to sign the string. The signature method is Signature = base64(hmac-sha1(base64(policy), AccessKeySecret)).

Private address is forbidden to callback

  • Cause: OSS cannot send a callback request to a private IP address.

  • Solution: Use a public IP address to send the callback request.

The bucket POST contains unrecognized field name

  • Cause: The line following the filename field contains a custom parameter.

  • Solution: The line following the filename field must be a standard Content-Type parameter, as shown in the following figure:

    file-name

The bucket POST must contain the specified 'key'. If it is specified, please check the order of the fields

  • Cause: The key form field is not specified in the PostObject request, or the order of the key form field is incorrect.

  • Solution: Specify the key form field in the PostObject request. The key form field must precede the file form field. For more information, see PostObject.

The bucket POST must contain the specified field name

  • Cause: The POST request form contains an invalid parameter or a parameter in an incorrect format.

  • Solution: Specify the parameters in the standard format. For more information, see PostObject.

The callback body is empty

  • Cause: The callbackBody parameter is not specified.

  • Solution: The Callback parameter must be a Base64-encoded JSON string. You must specify the server URL for the callback (callbackUrl) and the content of the callback (callbackBody).

The callback body is invalid

  • Cause: The callbackBody parameter is invalid and cannot be parsed as JSON.

  • Solution: The callbackBody parameter specifies the value of the request body when a callback is initiated, for example, key=$(object)&etag=$(etag)&my_var=$(x:my_var). For troubleshooting, see Callback.

The callback body type configuration is invalid. or The body type of callback is not supported

  • Cause: The callbackBodyType parameter is invalid and cannot be parsed as JSON.

  • Solution: The callbackBodyType parameter specifies the Content-Type of the callback request. Supported values are application/x-www-form-urlencoded and application/json.

The callback configuration is not base64 encoded

  • Cause: The Callback parameter is not Base64-encoded.

  • Solution: The Callback parameter must be a Base64-encoded JSON string. You must specify the server URL for the callback and the content of the callback. For more information, see Callback.

The callback configuration is not json format

  • Cause: The Callback parameter is not in JSON format.

  • Solution: The Callback parameter must be a Base64-encoded JSON string. Example:

    {
    "callbackUrl":"121.101.XX.XX/test.php",
    "callbackHost":"oss-cn-hangzhou.aliyuncs.com",
    "callbackBody":"{\"mimeType\":${mimeType},\"size\":${size}}",
    "callbackBodyType":"application/json"
    }

The callback host configuration is invalid

  • Cause: The callbackHost parameter is invalid and cannot be parsed as JSON.

  • Solution: The callbackHost parameter specifies the Host header of the callback request, for example, oss-cn-hangzhou.aliyuncs.com. If callbackHost is not configured, the URL in callbackUrl is parsed, and the Host parsed from the URL is used as the value of callbackHost.

The callback signature version is invalid

  • Cause: The signature version is not supported.

  • Solution: Confirm that the current signature is version 1.0 or 2.0.

The callback url configuration is invalid

  • Cause: The server URL for the callback (callbackUrl) is not specified in the Callback parameter.

  • Solution: The Callback parameter must be a Base64-encoded JSON string. You must specify the server URL for the callback and the content of the callback.

The callback var is not expecten json

  • Cause: The callback-var parameter is not in JSON format.

  • Solution: The callback-var parameter is used to configure custom parameters. Custom parameters are specified as key-value pairs. Keys must start with x: and be in lowercase. For example, to set two keys, x:var1 and x:var2, with the corresponding values value1 and value2, the JSON format is as follows:

    {
    "x:var1":"value1",
    "x:var2":"value2"
    }

The format of persistent header is invalid, should be \"name:Base64Encode(value),name:Base64Encode(value)...\". or The header value specified by persistent header is not base64 encoded

  • Cause: The format of the custom header is incorrect.

  • Solution: The format of a custom header is x-oss-persistent-headers: key1:base64_encode(value1),key2:base64_encode(value2)..... In this format, key1 and key2 are custom headers, and value1 and value2 are their corresponding values. base64_encode indicates that the values of the custom headers are Base64-encoded. For example, if the custom headers are myheader1 and myheader2, and their values are myvalue1 and myvalue2, the custom request header should be x-oss-persistent-headers:myheader1:bXl2YWx1ZTE=,myheader2:bXl2YWx1ZTI=.

The header 'x-oss-tagging' shall be encoded as UTF-8 then URLEncoded URL query parameters without tag name duplicates

  • Cause: The key and value of the tag are not URL-encoded, and the key is duplicated.

  • Solution: Object tagging uses a set of key-value pairs to mark an object. The following rules apply to object tags:

    • An object can have a maximum of 10 tags. Keys must be unique.

    • Each key can be up to 128 characters in length, and each value can be up to 256 characters in length.

    • Keys and values are case-sensitive.

    • The valid character set for tags includes uppercase letters, lowercase letters, digits, spaces, and the following special characters: + - = . _ : / When you set tags using HTTP headers and the tags contain any of these characters, you must URL-encode the keys and values of the tags.

The header specified by persistent header is not valid HTTP token

  • Cause: The custom header contains invalid characters.

  • Solution: OSS complies with the RFC 7230 specification and determines whether an HTTP header contains invalid characters based on this specification.

The header specified by persistent header is reserved

  • Cause: The custom header conflicts with a standard HTTP header.

  • Solution: Do not specify standard HTTP headers, such as Host, Content-MD5, Origin, or Range, in the custom header.

The header value specified by persistent header contains CR or LF

  • Cause: The value of the custom header contains a carriage return \r or a line feed \n.

  • Solution: Remove the carriage return \r and line feed \n from the value of the custom header.

The header value specified by persistent header is not equal to request header value

  • Cause: The custom header has the same name as a request header, but their values are different.

  • Solution: If a custom header has the same name as a request header, their values must be the same.

The header value specified by persistent header is not utf-8 encoded

  • Cause: The value of the custom header is invalid.

  • Solution: UTF-8 encode special characters, such as Chinese characters, in the value of the custom header.

The length of callback exceed max value

  • Cause: The total length of the Base64-encoded callback parameter exceeds 5 KB.

  • Solution: The total length of the Base64-encoded callback parameter cannot exceed 5 KB.

The length of callback var exceed max value

  • Cause: The total length of the Base64-encoded callback-var parameter exceeds 5 KB.

  • Solution: The total length of the Base64-encoded callback-var parameter cannot exceed 5 KB.

The number of callback url exceed max value

  • Cause: The number of requested callback URLs exceeds 5.

  • Solution: OSS lets you configure a maximum of five URLs at the same time. Separate each URL with a semicolon (;).

The Versioning element must be specified

  • Cause: The versioning status of the bucket is not specified in the <VersioningConfiguration> field.

  • Solution: Specify the versioning status of the bucket in the <VersioningConfiguration> field. Example:

    PUT /?versioning HTTP/1.1
    Host: bucket-versioning.oss-cn-hangzhou.aliyuncs.com
    Date: Tue, 09 Apr 2019 02:20:12 GMT
    Authorization: OSS qn6q**************:77Dv****************
    <?xml version="1.0" encoding="UTF-8"?>
    <VersioningConfiguration>
        <Status>Enabled</Status>
    <VersioningConfiguration>

Unknown parameter in Authorization header

  • Cause: An unknown parameter is present in the Authorization header calculation method.

  • Solution: Complete the Authorization header calculation based on the parameter descriptions in the following table.

    Parameter

    Type

    Required

    Example

    Description

    AccessKeyId

    String

    Yes

    LTAI****************

    The AccessKey ID of the key.

    AccessKeySecret

    String

    Yes

    yourAccessKeySecret

    The AccessKey secret of the key.

    VERB

    Enumeration

    Yes

    PUT

    The HTTP request method, such as PUT, GET, POST, HEAD, DELETE, or OPTIONS.

    \n

    String

    No

    \n

    A line feed.

    Content-MD5

    String

    No

    eB5eJF1ptWaXm4bijSPyxw==

    The MD5 hash of the request content data. To obtain this value, calculate the MD5 hash of the message content (excluding headers) to get a 128-bit number, and then Base64-encode the number. For more information, see RFC2616 Content-MD5.

    This request header can be used to check the integrity of the message (whether the message content is the same as when it was sent). This header can be empty.

    For information about how to calculate the Content-MD5 hash, see Calculate a Content-MD5 hash.

    Content-Type

    String

    No

    application/octet-stream

    The type of the request content. This header can be empty.

    Date

    String

    Yes

    Sun, 22 Nov 2015 08:16:38 GMT

    The time of the operation. The Date parameter must be in GMT format and cannot be empty.

    Important

    If the time difference between the Date in the request and the current time on the OSS server is more than 15 minutes, the OSS server rejects the request and returns an HTTP 403 error.

    CanonicalizedOSSHeaders

    String

    No

    x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n

    The HTTP headers that are prefixed with x-oss- and sorted in lexicographic order. This parameter can be empty.

    • If you set CanonicalizedOSSHeaders to empty, you do not need to add the \n separator at the end.

    • If there is only one CanonicalizedOSSHeaders, you must add the \n separator at the end, for example, x-oss-meta-a\n.

    • If there are multiple CanonicalizedOSSHeaders, you must add the \n separator after each CanonicalizedOSSHeaders, for example, x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n.

    For information about how to construct CanonicalizedOSSHeaders, see Construct CanonicalizedOSSHeaders.

    CanonicalizedResource

    String

    Yes

    /examplebucket/

    The OSS resource that you want to access. This parameter cannot be empty.

    For information about how to construct CanonicalizedResource, see Construct CanonicalizedOSSHeaders.

Version id can not be the empty string

x-oss-traffic-limit is invalid, should be specified between 819200(100KB/s) and 838860800(100MB/s)

  • Cause: The value for single-connection bandwidth throttling is invalid.

  • Solution: The value for single-connection bandwidth throttling must be in the range of 819,200 to 838,860,800, which is equivalent to 100 KB/s to 100 MB/s.

x-oss-traffic-limit should be specified either in query string or header, not both

  • Cause: The single-connection bandwidth throttling parameter x-oss-traffic-limit is included in both the request URL and the request header.

  • Solution: The single-connection bandwidth throttling parameter x-oss-traffic-limit can be included in either the request URL or the request header, but not both.

InvalidBucketName

This error is returned if the provided bucket name does not comply with OSS naming conventions.

The specified bucket is not valid

  • Cause: The bucket name does not comply with the naming conventions.

  • Solution: Check and make sure that the bucket name complies with the naming conventions. The following rules apply to bucket names:

    • Can contain only lowercase letters, digits, and hyphens (-).

    • Must start and end with a lowercase letter or a digit.

    • Must be 3 to 63 characters in length.

InvalidBucketStatus

This error is returned if the status of the bucket does not meet the requirements of a specific operation.

The src and dest bucket must be versioning enabled when drs tagging rule exist

  • Cause: The versioning status of the source bucket and the destination bucket for CRR are inconsistent.

  • Solution: For CRR, versioning must be either enabled or disabled for both the source and destination buckets.

InvalidChannelName

This error is returned if the LiveChannel name does not comply with the naming conventions.

ChannelName must not be empty

  • Cause: The channel name field is missing.

  • Solution: Specify the channel name according to the naming conventions.

    • Use UTF-8 encoding.

    • Must be 1 to 64 characters in length.

    • Cannot contain forward slashes (/) or backslashes (\).

ChannelName must not contain a slash

  • Cause: The channel name contains a slash.

  • Solution: Make sure that the channel name does not contain a forward slash (/) or a backslash (\).

The characters encoding must be utf-8

  • Cause: The encoding of the channel name is incorrect.

  • Solution: The channel name must be UTF-8 encoded.

The Length of channel name must be less than 64

  • Cause: The length of the channel name exceeds the limit.

  • Solution: Make sure that the channel name is 1 to 64 characters in length.

InvalidCRC64

This error is returned if the CRC-64 value does not match during data transmission.

The x-oss-hash-crc64ecma you specified does not match what we calculated

InvalidDataEncryptionAlgorithmError

This error is returned if the specified data encryption algorithm is not supported.

The KMS Data Encryption request you specified is not valid. Supported value:SM4

  • Cause: The specified object encryption algorithm is invalid.

  • Solution: When the object is encrypted using KMS, only the SM4 encryption algorithm is supported. For more information, see Server-side encryption.

InvalidDigest

This error is returned if the Content-MD5 value in the request does not match the result calculated by the server.

The Content-MD5 you specified was invalid

  • Cause: The Content-MD5 request header of the upload does not match the Content-MD5 hash of the message body calculated by OSS.

  • Solution: For troubleshooting, see Calculate a Content-MD5 hash.

InvalidEncryptionAlgorithmError

This error is returned if the specified server-side encryption algorithm is invalid.

The encryption algorithm specified is not valid. or The Encryption request you specified is not valid. Supported value: AES256/SM4/KMS

  • Cause: The value specified for the x-oss-server-side-encryption parameter is invalid.

  • Solution: Valid values for x-oss-server-side-encryption are AES256, KMS, and SM4. For more information about server-side encryption methods, see PutObject.

InvalidEncryptionRequest

This error is returned if a required parameter is missing from a client-based encryption request or if a parameter is configured incorrectly.

Client encryption doesn't support upload part copy

  • Cause: The UploadPartCopy operation cannot be called on a source file that has been encrypted on the client.

  • Solution: You can call the UploadPartCopy operation only on a source file that has not been encrypted on the client to copy data from an existing object to upload a part. For more information, see UploadPartCopy.

Miss some necessary client encryption meta parameters

  • Cause: A required parameter for client-based encryption is missing.

  • Solution: Make sure that you have specified all of the following required parameters.

    Parameter

    Description

    x-oss-meta-client-side-encryption-key

    The encrypted key. This is a string that is encrypted by the master key and then Base64-encoded.

    x-oss-meta-client-side-encryption-start

    The randomly generated initial value used for data encryption. This is a string that is encrypted by the master key and then Base64-encoded.

    x-oss-meta-client-side-encryption-cek-alg

    The data encryption algorithm.

    x-oss-meta-client-side-encryption-wrap-alg

    The encryption algorithm for the data key.

The client encryption meta data_size or part_size is invalid

  • Cause: The total file size or part size entered in the client-based encryption metadata is invalid.

  • Solution: When you perform a client-based multipart upload, you must pass the total size of the large file (x-oss-meta-client-side-encryption-data-size) and the part size (x-oss-meta-client-side-encryption-part-size) during the multipart upload initialization. The part size must be an integer multiple of 16. For more information, see Client-side encryption (Java SDK V1).

The client encryption meta is inconsistent with init_multipart setted

  • Cause: The part encryption information configured for client-based encryption is inconsistent with the encryption information set during multipart upload initialization.

  • Solution: Make sure that the part encryption information configured for the client is consistent with the encryption information set during multipart upload initialization. For more information, see Client-side encryption (Java SDK V1).

The client encryption part list is unexpected with init_multipart setted

  • Cause: The number of parts actually uploaded is inconsistent with the number of parts specified during multipart upload initialization.

  • Solution: Make sure that the specified number of parts is consistent with the number of parts actually uploaded.

The last partSize must same with init_multipart setted

  • Cause: The total size of all parts actually uploaded is inconsistent with the total part size specified during multipart upload initialization.

  • Solution: After you upload the last part, make sure that the total size of all parts actually uploaded is consistent with the total part size specified during multipart upload initialization. For more information, see CompleteMultipartUpload.

The parameters of client encryption are allowed to be set once

  • Cause: The CopyObject operation is used to modify client-based encryption metadata.

  • Solution: After a file is uploaded with client-based encryption, the encryption metadata is protected and cannot be modified using the CopyObject operation to change the object metadata. For more information, see CopyObject.

The partId must less or equal to expectedPartNumber

  • Cause: The part ID is greater than the total number of parts (PartNumber).

  • Solution: Make sure that the part ID is less than or equal to the total number of parts. For more information, see UploadPart.

The parts count calculated by client encryption meta is too large

  • Cause: The number of parts entered in the client-based encryption metadata exceeds the limit.

  • Solution: Each object can be divided into a maximum of 10,000 parts.

The partSize must same with init_multipart setted except last part

  • Cause: The size of each part actually uploaded is inconsistent with the size of each part specified during multipart upload initialization.

  • Solution: Except for the last part, the size of all other parts must be consistent with the size of each part specified during multipart upload initialization. For more information, see UploadPart.

InvalidHostPutBucket

This error is returned if you use an incorrect domain name to create a bucket.

Your host is invalid. Please put bucket use Open Storage Service standard host

  • Cause: The Host parameter is incorrect.

  • Solution: Use a standard endpoint. For more information about endpoints and data centers, see Endpoints and data centers.

InvalidObjectName

This error is returned if the provided object name does not comply with OSS naming conventions.

The Length of Object name must be less than 1024

  • Cause: The length of the object name exceeds the limit.

  • Solution: Make sure that the object name is 1 to 1,023 characters in length.

The Object name can not be empty

  • Cause: The object name is not specified.

  • Solution: Specify the object name according to the object naming conventions.

The specified object is not valid

  • Cause: The specified object name is invalid.

  • Solution: Check and make sure that the object name complies with the naming conventions. The following rules apply to object names:

    • Use UTF-8 encoding.

    • Must be 1 to 1,023 characters in length.

    • Cannot start with a forward slash (/) or a backslash (\).

InvalidParameter

This error is returned if a parameter value provided in the request is invalid or does not meet the requirements.

The specified parameter KMS keyId is not valid

  • Cause: The specified CMK ID is invalid.

  • Solution: When an object is encrypted using KMS and a specified key is used, you must enter the CMK ID. Example CMK ID: 9468da86-3509-4f8d-a61e-6eab1eac****.

InvalidPart

This error is returned if the part information is invalid during a multipart upload.

One or more of the specified parts could not be found or the specified entity

  • Cause: The part submitted by CompleteMultipartUpload is invalid due to an incorrect PartNumber or ETag.

  • Solution: The server verifies the PartNumber and ETag when the CompleteMultipartUpload operation is called.

    • The PartNumber must be an integer from 1 to 10,000. The PartNumbers do not have to be consecutive, but they must be in ascending order. For example, the PartNumber of the first part can be 1, and the PartNumber of the second part can be 5.

    • For an object created by a CompleteMultipartUpload request, the ETag value is the UUID of its content. The ETag value can be used to check whether the object content has changed.

InvalidPartOrder

This error is returned if the part numbers or their order in a multipart upload do not meet the requirements.

Part number must be an integer between 1 and 10000, inclusive

  • Cause: The PartNumber is invalid.

  • Solution: Make sure that the PartNumber is an integer from 1 to 10,000. For more information, see CompleteMultipartUpload.

The list of parts was not in ascending order

  • Cause: The parts submitted by CompleteMultipartUpload are not sorted in ascending order by part number.

  • Solution: The parts submitted by CompleteMultipartUpload must be sorted in ascending order by part number. For example, the PartNumber of the first part can be 1, and the PartNumber of the second part can be 5. For more information, see CompleteMultipartUpload.

InvalidPolicyDocument

This error is returned if the Policy document in the request has an incorrect format or invalid content.

Invalid Policy: Invalid JSON: , or ] expected

  • Cause: The Policy in the request has an incorrect format.

  • Solution: Check whether the Policy is missing a , or ].

Invalid Policy: Invalid JSON: unknown char e

  • Cause: The Policy in the request has an incorrect format.

  • Solution: Check the Policy format. Check whether it is missing a " or whether an escape character is missing a \.

Invalid Policy: Invalid Simple-Condition: Simple-Conditions must have exactly one property specified

  • Cause: The request Policy does not contain conditions.

  • Solution: The request Policy must contain at least one conditions element.

InvalidRequest

This error indicates that a request parameter is configured incorrectly or is invalid for the specified scenario.

Master playlist has ts file

  • Cause: The master playlist contains both M3U8 and TS files.

  • Solution: A master playlist must contain only M3U8 files, which are used to record information about TS video files. For more information, see Build an HLS stream based on OSS.

No ts found in the playlist

  • Cause: The .ts file was not found.

  • Solution: You can upload the audio or video file using stream ingest. For more information, see PutLiveChannel.

Playlist name must ends with \".m3u8\"

  • Cause: The file name does not end with .m3u8.

  • Solution: For the HLS dump type, the filename must end with .m3u8 and be 6 to 128 characters long. For example, playlist.m3u8.

Request specific response headers cannot be used for anonymous GET requests

  • Cause: A required parameter is missing from the request.

  • Solution: Check whether all required parameters are specified for the API operation. For more information, see API overview.

Security-token must be provided by query string parameter

  • Cause: The security-token parameter is missing.

  • Solution: The security-token parameter must be included when a temporary user uses a signed URL. The format of a signed URL for a temporary user is as follows: http://oss-example.oss-cn-hangzhou.aliyuncs.com/oss-api.pdf?OSSAccessKeyId=LTAI****************&Expires=1141889120&Signature=vjbyPxybdZaNmGa%2ByT272YEAiv****&security-token=SecurityToken. For more information, see Include a signature in a URL.

Size of playlist is too big

  • Cause: The playlist file size exceeds the maximum limit.

  • Solution: Ensure that the playlist file size does not exceed 1 MB.

InvalidTag

This error occurs if the key or value of a bucket tag does not comply with the naming conventions.

The TagKey you have provided is invalid. or The TagValue you have provided is invalid

  • Cause: The key or value of the bucket tag is invalid.

  • Solution: Ensure that the bucket tag complies with the following naming rules:

    • The key and value must be UTF-8 encoded.

    • The key can be up to 64 characters long, cannot start with http://, https://, or Aliyun, and cannot be empty.

    • The value can be up to 128 characters long and can be empty.

InvalidTaggingKey

This error is returned if the key of an object tag does not comply with the naming conventions.

The tagging key you provided is invalid

  • Cause: The key of the object tag is invalid.

  • Solution: Object tagging uses a set of key-value pairs to mark an object. The following rules apply to object tags:

    • A key can be up to 128 characters in length, and a value can be up to 256 characters in length.

    • Keys and values are case-sensitive.

    • The valid character set for tags includes uppercase letters, lowercase letters, digits, spaces, and the following special characters: +, -, =, ., _, :, and /. If you use HTTP headers to set tags that contain any of these special characters, you must URL-encode the tag keys and values.

InvalidTargetBucket

This error occurs if the destination bucket for Cross-Region Replication (CRR) is invalid.

The target bucket is invalid for bucket replication

  • Cause: The specified destination bucket is invalid for replication.

  • Solution: Call the GetBucketReplicationLocation operation to retrieve the valid destination regions for replication.

InvalidTargetBucketForLogging

This error occurs if the destination bucket for storing logs does not exist or you do not have the required permissions to access it.

Put bucket log requester is not target bucket owner

  • Cause: The destination bucket for storing logs does not exist.

  • Solution: Specify a valid destination bucket.

InvalidTargetLocation

This error occurs if the specified bucket does not exist in the destination region.

The target bucket you specified does not locate in the target location

  • Cause: The bucket does not exist in the destination region.

  • Solution: Verify the region where the bucket is located.

InvalidTargetType

This error is returned when a symbolic link points to a target object of an invalid type.

The symbolic's target file type is invalid

  • Cause: The symbolic link points to another symbolic link.

  • Solution: Ensure that the target of the symbolic link is not another symbolic link.

InvalidWORMConfiguration

This error indicates that the retention policy configuration is invalid.

Invalid WORM Configuration

  • Cause: The retention policy is invalid.

  • Solution: The following code shows an example of creating a retention policy using the InitiateBucketWorm operation:

    POST /?worm HTTP/1.1
    Date: Thu, 15 May 2014 11:18:32 GMT
    Content-Length: 556
    Content-Type: application/xml
    Host: BucketName.oss.aliyuncs.com
    Authorization: OSS qn6q**************:77Dv****************
    
    <InitiateWormConfiguration>
      <RetentionPeriodInDays>365</RetentionPeriodInDays>
    </InitiateWormConfiguration>

InvalidXMLFormat

This error is returned if the request parameters are not in a valid XML format.

The XML you provided was not well-formed

  • Cause: The request parameters are not in a valid XML format.

  • Solution: Ensure that the request parameters are in a valid XML format.

InventoryExceedLimit

This error occurs when the number of inventory rules configured for a bucket exceeds the system limit.

You are not allowed to create more inventory than limit

  • Cause: The number of inventory rules for a single bucket has reached the maximum limit of 1,000.

  • Solution: To increase the limit on the number of inventory rules, submit a ticket.

KmsServiceNotEnabled

This error occurs if you use KMS encryption but the KMS service is not activated.

This user does not turn on KMS service

  • Cause: You attempted to use KMS for server-side encryption before activating the KMS service.

  • Solution: Activate the KMS service. For more information, see Activate Key Management Service.

MalformedPOSTRequest

This error is returned when a form field in a PostObject request is not correctly formatted.

The body of your POST request is not well-formed multipart/form-data

  • Cause: A form field in the PostObject request is not correctly formatted.

  • Solution: Ensure that the form fields follow the required format. The format of a form field is as follows:

    Content-Disposition: form-data;
            name="{key}"\r\n\r\n{value}\r\n--{boundary}

    The following code provides an example of a PostObject request:

    POST / HTTP/1.1
    User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; zh-CN; rv:1.9.2.6)
    Content-Type: multipart/form-data; boundary=9431149156168
    Host: xxxx-hz.oss-cn-hangzhou.aliyuncs.com
    Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
    Connection: keep-alive
    Content-Length: 5052
    --9431149156168
    Content-Disposition: form-data; name="key"
    test-key
    --9431149156168
    Content-Disposition: form-data; name="Content-Disposition"
    attachment;filename=D:\img\example.png
    --9431149156168
    Content-Disposition: form-data; name="OSSAccessKeyId"
    2NeL********j2Eb

    The requirements are as follows:

    • The header must include Content-Type: multipart/form-data; boundary={boundary}.

    • The header and body are separated by \r\n--{boundary}. The \r\n characters represent a line break.

    • Form field names are case-sensitive, such as policy, key, file, OSSAccessKeyId, OSSAccessKeyId, and Content-Disposition.

    • The file form field must be the last form field.

    • If the bucket is public-read-write, you do not need to specify the OSSAccessKeyId, policy, and Signature form fields. If you specify one of these fields, you must specify the other two, regardless of whether the bucket is public-read-write.

    Note

    The preceding example shows only part of the request. For the complete request, see PostObject.

    For more information, refer to the following code examples:

MalformedXML

This error is returned when the XML format in the request is invalid or does not conform to the published schema.

The XML you provided was not well-formed or did not validate against our published schema

MaxPOSTPreDataLengthExceededError

This error is returned when the form field data that precedes the uploaded file in a PostObject request is too large.

Your POST request fields preceding the upload file were too large

  • Cause: The uploaded file is too large. The maximum size for a file uploaded using the Post method is 5 GB.

  • Solution: For more information, see Troubleshoot PostObject errors.

MissingAccessKeyId

This error indicates that the AccessKey ID is missing from the request.

MissingAccessKeyId AccessKeyId is mandatory for this action

  • Cause: The AccessKey ID is missing.

  • Solution: Specify the correct AccessKey ID.

MissingArgument

This error indicates that a required parameter is missing from an API call.

Missing Some Required Arguments

  • Cause: The API call is missing a required parameter.

  • Solution: Refer to the API documentation in the API overview and add all required parameters.

NoReplicationLocation

This error occurs if the region of the source bucket does not have a paired destination region for Cross-Region Replication (CRR).

The bucket does not have corresponding replication location

  • Cause: The data center of the source bucket does not have a paired data center for CRR.

  • Solution: To obtain a list of available destination regions for replication, see GetBucketReplicationLocation.

NoReplicationRule

This error occurs if no Cross-Region Replication (CRR) rule is configured for the requested bucket.

No replication rule specified

  • Cause: No CRR rule is configured for the requested bucket.

  • Solution: Configure a CRR rule for the bucket. For more information, see PutBucketReplication.

NotImplemented

This error is returned if the request includes a feature that is not yet implemented or an unsupported operation.

A header you provided implies functionality that is not implemented

  • Cause: An incorrect or unsupported parameter was passed in the API request.

  • Solution: Refer to the corresponding API documentation in the API overview and use the correct and supported parameter format.

NotSymlink

This error is returned when an operation specific to symbolic links is performed on an object that is not a symbolic link.

The object is not symlink

  • Cause: The target object is not a symbolic link.

  • Solution: Ensure that the PutSymlink or GetSymlink operations are performed only on symbolic links.

OperationNotSupported

This error is returned when the requested operation is not applicable to the current resource type or status.

The operation is not supported for this resource

  • Cause: The requested operation is not supported for the specified resource. Possible scenarios include the following:

    • You attempt to convert an Appendable object or a symbolic link to the Cold Archive or Deep Cold Archive storage class.

    • You use the RestoreObject operation to restore an object that is not in the Archive Storage, Cold Archive, or Deep Cold Archive storage class.

  • Solution:

    • You can call the PutObject operation to upload an object with the same name to overwrite the Appendable object with a Normal object. You can then convert the object to the Cold Archive or Deep Cold Archive storage class.

    • When you use the RestoreObject operation to restore a file, ensure that the file is in the Archive Storage, Cold Archive, or Deep Cold Archive storage class.

    For more information about the types of operations supported by various resources, see API overview.

RepeatedTags

This error indicates that a duplicate key exists in the tag configuration.

Tag keys must be unique

  • Cause: The specified tag key already exists.

  • Solution: Call GetBucketTags to retrieve the existing tags for the bucket, and then call PutBucketTags to configure new tags.

RequestIsNotMultiPartContent

This error is returned if the Content-Type of a PostObject request is not multipart/form-data.

Bucket POST must be of the enclosure-type multipart/form-data

  • Cause: The form submitted by the PostObject operation is not encoded as multipart/form-data.

  • Solution: The form submitted by a PostObject operation must be encoded as multipart/form-data. This requires the Content-Type in the header to be in the format multipart/form-data;boundary=xxxxxx, where boundary is the boundary string. For more information, see PostObject.

RequestTimeout

This error occurs when a request fails to complete within the specified time because of a network timeout.

Your socket connection to the server was not read from or written to within the timeout period. Idle connections will be closed

  • Cause: A network timeout occurred because of the network environment or a network configuration.

  • Solution: For troubleshooting, see Handle network timeouts.

TooManyBuckets

This error is returned when the number of buckets created by an Alibaba Cloud account in a single region exceeds the specified limit.

You have attempted to create more buckets than allowed

  • Cause: The number of buckets created by a single Alibaba Cloud account in a region has reached the maximum limit of 100.

  • Solution:

    • A bucket does not have a capacity limit. You can create folders in a bucket to organize your content. For more information about how to create a folder, see Create a folder.

    • Delete buckets that you no longer need. For more information about how to delete a bucket, see Delete a bucket.

      Important

      Deleted buckets cannot be recovered. Proceed with caution.

    • To increase the bucket quantity limit, submit a ticket.

TooManyCname

This error occurs when the number of custom domain names attached to a bucket exceeds the limit.

You have attempted to create more cname than allowed

  • Cause: The number of domain names that can be attached to a bucket has reached the maximum of 100.

  • Solution: You can submit a ticket to increase the limit on the number of domain names for a bucket.

TooManyFilterObjectTags

This error is returned if the number of object tags configured in a Cross-Region Replication (CRR) rule exceeds the limit.

The bucket replication rule's filter object tags number is beyond limit

  • Cause: The number of object tags configured in the CRR rule exceeds the limit.

  • Solution: You can add a maximum of 10 object tags to a CRR rule to filter objects for synchronization.

TooManyIncomingReplication

This error is returned if the number of Cross-Region Replication (CRR) rules that use the bucket as a destination exceeds the limit.

You have attempted to create more incoming replication for bucket than allowed

  • Cause: The number of CRR rules associated with the bucket has reached 100.

  • Solution: A single bucket supports up to 100 CRR rules. If your business requirements exceed this limit, you can submit a ticket.

TooManyOutgoingReplication

This error indicates that the number of outgoing Cross-Region Replication (CRR) rules for the source bucket exceeds the limit.

You have attempted to create more outgoing replication for bucket than allowed

  • Cause: The number of CRR rules associated with the bucket has reached the limit of 100.

  • Solution: A single bucket supports up to 100 CRR rules. If your business requirements exceed this limit, submit a ticket.

TooManyPipes

This error occurs when the number of pipeline operators in an image processing operation exceeds the limit.

Maximal number of pipes supported is

  • Cause: The request includes too many image operations.

  • Solution: Reduce the number of image operations in your request.

TooManyPrefixes

This error is returned if the number of prefixes in a Cross-Region Replication (CRR) rule exceeds the limit.

The bucket replication rule's prefixes number is beyond limit

  • Cause: More than 10 prefixes are specified in the CRR rule.

  • Solution: For cross-region replication, you can specify up to 10 prefixes to sync only matching objects to the destination Bucket.

TooManyReplicationRules

This error occurs when the number of Cross-Region Replication (CRR) rules configured for a bucket exceeds the limit.

OSS only support one replication rule now

  • Cause: You configured more than one replication rule for a single bucket.

  • Solution: You can configure only one replication rule for a bucket.

TooManyTags

This error is returned when the number of tags for a bucket exceeds the system limit.

The bucket tags num is beyond limit

  • Cause: The number of tags for the bucket exceeds the limit.

  • Solution: A bucket can have a maximum of 20 tags. For more information, see PutBucketTags.

UserKeyMustBeSpecified

This error is returned if an object name is not specified in a delete operation.

User key must be specified

  • Cause: An object name was not specified for the delete operation.

  • Solution: Specify the name of the object to delete. For more information, see DeleteMultipleObjects.

WeeklyInventoryExceedLimit

This error occurs if the number of objects in a bucket exceeds the limit for weekly manifest file exports.

weekly inventory object count exceed limit

  • Cause: The number of objects in the bucket exceeds the limit for weekly manifest file exports.

  • Solution: The number of objects in a bucket must be less than 50 billion for a weekly manifest file export.

    When a bucket contains 50 billion or more files:

    • Export the objects in batches by matching prefixes.

    • Submit a ticket to request an increase in the object export limit.