All Products
Search
Document Center

Object Storage Service:HTTP status code 400

Last Updated:Apr 25, 2024

This topic describes the types of error messages returned with HTTP status code 400, and the common causes of and solutions to these errors.

InvalidBucketName

The specified bucket is not valid

  • Cause: The bucket name is invalid.

  • Solution: Make sure that the bucket name complies with the following naming rules:

    • The bucket name can contain only lowercase letters, digits, and hyphens (-).

    • The name must start and end with a lowercase letter or digit.

    • The name must be 3 to 63 characters in length.

InvalidObjectName

The Object name can not be empty

  • Cause: No object name is specified.

  • Solution: Specify a name for the object and make sure that the bucket name complies with the naming rules.

The Length of Object name must be less than 1024

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

  • Solution: The object name must be 1 to 1,023 characters in length.

The specified object is not valid

  • Cause: The specified object name is invalid.

  • Solution: Make sure that the object name complies with the following naming rules:

    • The name must be encoded in UTF-8.

    • The name must be 1 to 1,023 characters in length.

    • The name cannot start with a forward slash (/) or a backslash (\).

TooManyBuckets

You have attempted to create more buckets than allowed

  • Cause: The number of buckets that are created by the Alibaba Cloud account in the region has reached the upper limit of 100.

  • Solutions:

    • Create directories in an existing bucket in the region to store data. The storage capacity of a bucket is unlimited. For more information about how to create a directory, see Manage directories.

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

      Warning

      Deleted buckets cannot be restored. Exercise caution when you perform this operation.

    • Submit a ticket to increase the maximum number of buckets that you can create by using an Alibaba Cloud account in a region.

RequestIsNotMultiPartContent

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

  • Cause: The value of the Content-Type header in the PostObject request is not in the multipart/form-data format.

  • Solution: The value of the Content-Type header in the PostObject request must be in the multipart/form-data format. The Content-Type header must be in the multipart/form-data;boundary=xxxxxx format, in which boundary is a boundary string. For more information, see PostObject.

NotImplemented

A header you provided implies functionality that is not implemented

  • Cause: The request contains invalid parameters.

  • Solution: Make sure that the parameters are valid before you call the API operation. For more information, see List of operations by function.

MissingArgument

Missing Some Required Arguments

  • Cause: The request for the API operation does not contain all required parameters.

  • Solution: Make sure that all required parameters are specified when you call the API operation. For more information, see List of operations by function.

InvalidArgument

Invalid Argument. Parameter is invalid

  • Cause: The format of a parameter is invalid.

  • Solution: Make sure that the parameters are in the valid format before you call the API operation. For more information, see List of operations by function.

The callback signature version is invalid

  • Cause: The version of the signature is not supported.

  • Solution: Make sure that the version of the current signature is 1.0 or 2.0.

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

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

  • Solution: When you copy an object, you must use the x-oss-copy-source parameter to specify the source object in the /sourcebucket/sourcekey format. For example, if you want to copy an object named exampleobject from a bucket named examplebucket to another bucket, set x-oss-copy-source to /examplebucket/exampleobject.

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

  • Cause: KMSMasterKeyID is specified when SSEAlgorithm is set to AES256.

  • Solution: Specify KMSMasterKeyID only when you set SSEAlgorithm to KMS and want to use a specified customer master key (CMK) to encrypt objects.

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

  • Cause: You do not have the permissions to perform this operation.

  • Solution: Perform the operation as the bucket owner or an authorized RAM user. Only the bucket owner or authorized RAM users can configure encryption rules for the bucket. For more information, see PutBucketEncryption.

No such bucket storage class exists

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

  • Solution: Set the storage class of the bucket to Standard, Infrequent Access (IA), Archive, Cold Archive, or Deep Cold Archive. For more information, see PutBucket.

Invalid version id specified

  • Cause: The specified object version ID is invalid.

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

Version id can not be the empty string

Authorization header is invalid

  • Cause: The parameters that are used to calculate the Authorization header are invalid.

  • Solution: Check the parameters for the calculation of the Authorization header based on the following information.

    • Calculation method

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

      Parameter

      Type

      Required

      Example

      Description

      AccessKeyId

      String

      Yes

      LTAI********

      The AccessKey ID that is used to access Object Storage Service (OSS).

      AccessKeySecret

      String

      Yes

      KZo1********

      The AccessKey secret that is used to access OSS.

      VERB

      Enumeration

      Yes

      PUT

      The method of the HTTP request, which can be PUT, GET, POST, HEAD, DELETE, or OPTIONS.

      \n

      String

      No

      \n

      The line feed.

      Content-MD5

      String

      No

      eB5eJF1ptWaXm4bijSPyxw==

      The MD5 hash of the requested content. The message content that excludes the header is calculated to obtain an MD5 hash. The MD5 hash is a 128-bit number that is encoded in Base64 to generate the Content-MD5 value. For more information, see RFC 2616 Content-MD5.

      The request header can be used to check the validity of a message. The message content is valid only if the received message content is the same as the content that is sent. This parameter can be left empty.

      For more information about how to calculate the value of Content-MD5, see Include signatures in the Authorization header.

      Content-Type

      String

      No

      application/octet-stream

      The type of the request content. This parameter can be left empty.

      Date

      String

      Yes

      Sun, 22 Nov 2015 08:16:38 GMT

      The time when this operation is performed. The value of this parameter must be in GMT. This parameter cannot be left empty.

      Important

      If the discrepancy between the time specified by the Date header in a request and the time on the server when the request is received is greater than 15 minutes, OSS rejects the request and returns HTTP status code 403.

      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 arranged in alphabetical order. This parameter can be left empty.

      • If CanonicalizedOSSHeaders is left empty, you do not need to add the \n delimiter at the end.

      • If CanonicalizedOSSHeaders includes only one header, the \n delimiter must be added at the end of the header. Example: x-oss-meta-a\n.

      • If CanonicalizedOSSHeaders includes multiple headers, you must add the \n delimiter at the end of each header. Example: x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n.

      For more information about how to construct CanonicalizedOSSHeaders, see Include signatures in the Authorization header.

      CanonicalizedResource

      String

      Yes

      /examplebucket/

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

      For more information about how to construct CanonicalizedResource, see Include signatures in the Authorization header.

    • Signature example

      Request

      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

      If the AccessKey ID is LTAI******** and the AccessKey secret is KZo1********, you can run the following Python code to calculate the signature:

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

      The calculated signature is 77Dv****************. The following example shows the final request that includes the Authorization header:

      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: The parameters used to calculate the Authorization header are invalid.

  • Solution: Configure the parameters described in the following table for the calculation of the Authorization header.

    Parameter

    Type

    Required

    Example

    Description

    AccessKeyId

    String

    Yes

    LTAI********

    The AccessKey ID that is used to access Object Storage Service (OSS).

    AccessKeySecret

    String

    Yes

    KZo1********

    The AccessKey secret that is used to access OSS.

    VERB

    Enumeration

    Yes

    PUT

    The method of the HTTP request, which can be PUT, GET, POST, HEAD, DELETE, or OPTIONS.

    \n

    String

    No

    \n

    The line feed.

    Content-MD5

    String

    No

    eB5eJF1ptWaXm4bijSPyxw==

    The MD5 hash of the requested content. The message content that excludes the header is calculated to obtain an MD5 hash. The MD5 hash is a 128-bit number that is encoded in Base64 to generate the Content-MD5 value. For more information, see RFC 2616 Content-MD5.

    The request header can be used to check the validity of a message. The message content is valid only if the received message content is the same as the content that is sent. This parameter can be left empty.

    For more information about how to calculate the value of Content-MD5, see Include signatures in the Authorization header.

    Content-Type

    String

    No

    application/octet-stream

    The type of the request content. This parameter can be left empty.

    Date

    String

    Yes

    Sun, 22 Nov 2015 08:16:38 GMT

    The time when this operation is performed. The value of this parameter must be in GMT. This parameter cannot be left empty.

    Important

    If the discrepancy between the time specified by the Date header in a request and the time on the server when the request is received is greater than 15 minutes, OSS rejects the request and returns HTTP status code 403.

    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 arranged in alphabetical order. This parameter can be left empty.

    • If CanonicalizedOSSHeaders is left empty, you do not need to add the \n delimiter at the end.

    • If CanonicalizedOSSHeaders includes only one header, the \n delimiter must be added at the end of the header. Example: x-oss-meta-a\n.

    • If CanonicalizedOSSHeaders includes multiple headers, you must add the \n delimiter at the end of each header. Example: x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n.

    For more information about how to construct CanonicalizedOSSHeaders, see Include signatures in the Authorization header.

    CanonicalizedResource

    String

    Yes

    /examplebucket/

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

    For more information about how to construct CanonicalizedResource, see Include signatures in the Authorization header.

AccessKeyId or Signature is missing in Authorization header value

  • Cause: The AccessKey ID and the Signature parameter are not specified in the Authorization header.

  • Solution: Add the AccessKey ID to the Authorization header and calculate the signature string based on the following example.

    Request

    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

    If the AccessKey ID is LTAI******** and the AccessKey secret is KZo1********, you can run the following Python code to calculate the signature:

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

    The calculated signature is 77Dv****************. The following example shows the final request that includes the Authorization header:

    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 value is empty

  • Cause: The parameters that are used to calculate the Authorization header are left empty.

  • Solution: Configure the parameters described in the following table for the calculation of the Authorization header.

    Parameter

    Type

    Required

    Example

    Description

    AccessKeyId

    String

    Yes

    LTAI********

    The AccessKey ID that is used to access Object Storage Service (OSS).

    AccessKeySecret

    String

    Yes

    KZo1********

    The AccessKey secret that is used to access OSS.

    VERB

    Enumeration

    Yes

    PUT

    The method of the HTTP request, which can be PUT, GET, POST, HEAD, DELETE, or OPTIONS.

    \n

    String

    No

    \n

    The line feed.

    Content-MD5

    String

    No

    eB5eJF1ptWaXm4bijSPyxw==

    The MD5 hash of the requested content. The message content that excludes the header is calculated to obtain an MD5 hash. The MD5 hash is a 128-bit number that is encoded in Base64 to generate the Content-MD5 value. For more information, see RFC 2616 Content-MD5.

    The request header can be used to check the validity of a message. The message content is valid only if the received message content is the same as the content that is sent. This parameter can be left empty.

    For more information about how to calculate the value of Content-MD5, see Include signatures in the Authorization header.

    Content-Type

    String

    No

    application/octet-stream

    The type of the request content. This parameter can be left empty.

    Date

    String

    Yes

    Sun, 22 Nov 2015 08:16:38 GMT

    The time when this operation is performed. The value of this parameter must be in GMT. This parameter cannot be left empty.

    Important

    If the discrepancy between the time specified by the Date header in a request and the time on the server when the request is received is greater than 15 minutes, OSS rejects the request and returns HTTP status code 403.

    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 arranged in alphabetical order. This parameter can be left empty.

    • If CanonicalizedOSSHeaders is left empty, you do not need to add the \n delimiter at the end.

    • If CanonicalizedOSSHeaders includes only one header, the \n delimiter must be added at the end of the header. Example: x-oss-meta-a\n.

    • If CanonicalizedOSSHeaders includes multiple headers, you must add the \n delimiter at the end of each header. Example: x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n.

    For more information about how to construct CanonicalizedOSSHeaders, see Include signatures in the Authorization header.

    CanonicalizedResource

    String

    Yes

    /examplebucket/

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

    For more information about how to construct CanonicalizedResource, see Include signatures in the Authorization header.

Unknown parameter in Authorization header

  • Cause: An unknown parameter is used to calculate the Authorization header.

  • Solution: Configure the parameters described in the following table for the calculation of the Authorization header.

    Parameter

    Type

    Required

    Example

    Description

    AccessKeyId

    String

    Yes

    LTAI********

    The AccessKey ID that is used to access Object Storage Service (OSS).

    AccessKeySecret

    String

    Yes

    KZo1********

    The AccessKey secret that is used to access OSS.

    VERB

    Enumeration

    Yes

    PUT

    The method of the HTTP request, which can be PUT, GET, POST, HEAD, DELETE, or OPTIONS.

    \n

    String

    No

    \n

    The line feed.

    Content-MD5

    String

    No

    eB5eJF1ptWaXm4bijSPyxw==

    The MD5 hash of the requested content. The message content that excludes the header is calculated to obtain an MD5 hash. The MD5 hash is a 128-bit number that is encoded in Base64 to generate the Content-MD5 value. For more information, see RFC 2616 Content-MD5.

    The request header can be used to check the validity of a message. The message content is valid only if the received message content is the same as the content that is sent. This parameter can be left empty.

    For more information about how to calculate the value of Content-MD5, see Include signatures in the Authorization header.

    Content-Type

    String

    No

    application/octet-stream

    The type of the request content. This parameter can be left empty.

    Date

    String

    Yes

    Sun, 22 Nov 2015 08:16:38 GMT

    The time when this operation is performed. The value of this parameter must be in GMT. This parameter cannot be left empty.

    Important

    If the discrepancy between the time specified by the Date header in a request and the time on the server when the request is received is greater than 15 minutes, OSS rejects the request and returns HTTP status code 403.

    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 arranged in alphabetical order. This parameter can be left empty.

    • If CanonicalizedOSSHeaders is left empty, you do not need to add the \n delimiter at the end.

    • If CanonicalizedOSSHeaders includes only one header, the \n delimiter must be added at the end of the header. Example: x-oss-meta-a\n.

    • If CanonicalizedOSSHeaders includes multiple headers, you must add the \n delimiter at the end of each header. Example: x-oss-meta-a:a\nx-oss-meta-b:b\nx-oss-meta-c:c\n.

    For more information about how to construct CanonicalizedOSSHeaders, see Include signatures in the Authorization header.

    CanonicalizedResource

    String

    Yes

    /examplebucket/

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

    For more information about how to construct CanonicalizedResource, see Include signatures in the Authorization header.

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

  • Cause:

    The Authorization field that is used to calculate the signature exists in the request header, and the OSSAccessKeyId, Expires, and Signature fields for signing exist in the request URI. Sample code:

    PUT /example_file?OSSAccessKeyId=LTAI********&Expires=1141889120&Signature=vjby******** 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:

    Include only the Authorization header or URI-based signature in the request.

    The following sample code provides an example on how to use the Authorization header to calculate the signature:

    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 sample code provides an example on how to use URI-based 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

Post request accessKeyId is empty

  • Cause: The OSSAccessKeyId form field is not specified in the headers of the POST request.

  • Solution: Check the bucket access control list (ACL). The OSSAccessKeyId form field is required when the bucket ACL is not public-read-write or when the policy or Signature form field is included in the request.

Post request signature is empty

  • Cause: The Signature form field is not specified in the headers of the POST request.

  • Solution: Check the bucket ACL. The Signature form field is required when the bucket ACL is not public-read-write or when the policy or OSSAccessKeyId form field is specified in the request.

    Perform the following steps to calculate the value of the Signature form field:

    1. Create a policy that is encoded in UTF-8.

    2. Encode the policy in Base64. The result is the value of the policy form field, and the value is used as the string to be signed.

    3. Use the AccessKey secret to sign the string in the following format: Signature = base64(hmac-sha1(base64(policy), AccessKeySecret)).

OSS authentication requires a valid Date

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

  • Solution: Make sure that the value of the Date field is in GMT. The Date field specifies the time when this operation was performed. Example: Sun, 22 Nov 2015 08:16:38 GMT.

The bucket POST must contain the specified field name

  • Cause: The POST request form contains invalid parameters, or the format of the parameter is invalid.

  • Solution: For more information, see PostObject.

The bucket POST contains unrecognized field name

  • Cause: The line after the filename field contains custom parameters.

  • Solution: Make sure that the line after the filename field contains only the Content-Type parameter, as shown in the following sample request: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 POST request, or the order of the specified key form field is incorrect.

  • Solution: Specify the key form field in the POST request, and make sure that the key form field is placed before the file form field. For more information, see PostObject.

Post body size must be less than 5G

  • Cause: The total size of the POST request body exceeds 5 GB.

  • Solution: Make sure that the body of the POST request does not exceed 5 GB in size. For more information, see PostObject.

The callback configuration is not base64 encoded

  • Cause: The callback parameter is not encoded in Base64.

  • Solution: Set the callback parameter to a JSON string that is encoded in Base64. The string must contain the URL of the server to which the callback request is sent and the content of the callback request. For more information, see Callback.

The callback configuration is not json format

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

  • Solution: Set the callback parameter to a Base64-encoded JSON string. Sample code:

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

The callback url configuration is invalid

  • Cause: The callback parameter does not contain the callbackUrl field, which specifies the URL of the server to which the callback request is sent.

  • Solution: Set the callback parameter to a Base64-encoded JSON string. The string must contain the URL of the server to which the callback request is sent and the content of the callback request.

The callback host configuration is invalid

  • Cause: The value of the callbackHost parameter is invalid and cannot be parsed as a JSON object.

  • Solution: Make sure that the value of callbackHost is valid. The callbackHost parameter specifies the Host header in the callback request. Example: oss-cn-hangzhou.aliyuncs.com. If the callbackHost parameter is not specified, OSS parses the URL specified by callbackUrl and sets the callbackHost parameter to the host parsed from the URL.

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

  • Cause: The value of the callbackBodyType parameter is invalid and cannot be parsed as a JSON object.

  • Solution: Make sure that the value of callbackBodyType is valid. The callbackBodyType parameter specifies the Content-Type header in the callback request. Valid values: application/x-www-form-urlencoded and application/json.

The number of callback url exceed max value

  • Cause: The value of callbackUrl contains more than five URLs.

  • Solution: Make sure that the callbackUrl parameter contains no more than five URLs. You can configure up to five URLs in a callback request and separate them with semicolon (;).

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

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

  • Solution: Encode Chinese characters in the value of the custom header in UTF-8.

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

  • Cause: The value of a custom header is different from that of a standard request header that has the same name.

  • Solution: Specify the same value for the custom header and the standard request header that has the same name.

The header value specified by persistent header contains CR or LF

  • Cause: The value of a custom header contains carriage returns (\r) or line feeds (\n).

  • Solution: Delete the carriage returns (\r) or line feeds (\n) from the value of the custom header.

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

  • Cause: The request URL and the request header both contain the callback parameter.

  • Solution: Remove the callback parameter from the request URL or the request header. You can include the callback parameter only in one of these fields.

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

  • Cause: The request URL and the request header both contain the callback-var parameter.

  • Solution: Remove the callback-var parameter from the request URL or the request header. You can include the callback-var parameter only in one of these fields.

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

  • Cause: The request URL and the request header both contain the callback-var parameter. This parameter is used to limit the transmission speed of a single link.

  • Solution: Remove the oss-traffic-limit parameter from the request URL or the request header. You can include the oss-traffic-limit parameter only in one of these fields.

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

  • Cause: The transmission speed limit for a single link is invalid.

  • Solution: Set the transmission speed limit of a single link to a value from 819,200 bit/s (100 KB/s) to 838,860,800 bit/s (100 MB/s).

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 headers is invalid.

  • Solution: Specify the custom headers in the x-oss-persistent-headers: key1:base64_encode(value1),key2:base64_encode(value2)... format, in which key1 and key2 are the keys of the custom headers, value1 and value2 are the values of the custom headers, and base64_encode specifies that the values of the custom headers are encoded in Base-64.

    For example, if you configure two custom headers named myheader1 and myheader2 and set myheader1 to myvalue1 and myheader2 to myvalue2, the custom headers contained in the request are 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 keys and values of tags are not URL-encoded, and multiple tags have the same key.

  • Solution: Make sure that the tags are URL-encoded and have unique keys. A tag is a key-value pair used to identify an object. Object tags must comply with the following rules:

    • An object can have up to 10 tags. The tags added to an object must have unique keys.

    • A tag key can be up to 128 characters in length. A tag value can be up to 256 characters in length.

    • Tag keys and tag values are case-sensitive.

    • The tag keys and tag values can contain letters, digits, spaces, and the following special characters:

      + - = . _ : /

      If the tags in the HTTP header contain characters, the tag keys and tag values must be URL-encoded.

The header specified by persistent header is reserved

  • Cause: The custom headers in the request conflict with the standard HTTP request headers.

  • Solution: Do not specify standard HTTP request headers as custom headers. Examples of standard HTTP request headers: Host, Content-MD5, Origin, and Range.

The header specified by persistent header is not valid HTTP token

  • Cause: The custom headers in the request contain invalid characters.

  • Solution: Make sure that custom headers do not contain invalid characters that are defined in RFC 7230.

Can not get ip by this host

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

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

Private address is forbidden to callback

  • Cause: OSS cannot send callback requests to an IP address that resides in the internal network.

  • Solution: Set the URL of the server to which callback requests are sent to a public IP address.

The length of callback exceed max value

  • Cause: The total size of the Base64-encoded callback content exceeds 5 KB.

  • Solution: Make sure that the total size of the Base64-encoded callback content does not exceed 5 KB.

The callback body is empty

  • Cause: The callbackBody parameter is not specified.

  • Solution: Set the callback parameter to a Base64-encoded JSON string. The string must contain the URL of the server to which the callback request is sent (callbackUrl) and the content of the callback request (callbackBody).

The callback body is invalid

  • Cause: The value of the callbackBody parameter is invalid and cannot be parsed as a JSON object.

  • Solution: Make sure that the value of callbackBody is valid. The callbackBody parameter specifies the value of the callback request body. Example: key=$(object)&etag=$(etag)&my_var=$(x:my_var). For more information, see Callback.

The length of callback var exceed max value

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

  • Solution: Make sure that the total size of the Base64-encoded content of the callback-var parameter does not exceed 5 KB.

The callback var is not expecten json

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

  • Solution: Make sure that the callback-var parameter is specified in the JSON format. The callback-var parameter is used to configure custom parameters, which are key-value pairs. The key of a custom parameter must be in lowercase and start with x:. For example, you want to configure two custom parameters whose keys are x:var1 and x:var2. The value of x:var1 is value1, and the value of x:var2 is value2. The callback-var parameter can be specified in the following JSON format:

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

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

  • Cause: The value of the Date parameter is a UNIX timestamp that is earlier than 00:00:00, January 1, 1970.

  • Solution: Set the Date parameter to a UNIX timestamp that is later than 00:00:00, January 1, 1970.

Invalid date. Cannot be later than the current time

  • Cause: The value of the Date parameter is a UNIX timestamp that is later than the current time.

  • Solution: Set the Date parameter to a UNIX timestamp that is earlier than the current time.

Bad date format

  • Cause: The value of the Date parameter is invalid.

  • Solution: Set the Date parameter to a value that meets the date format defined in RFC 1123. Example: Sun, 06 Nov 1994 08:49:37 GMT.

The Versioning element must be specified

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

  • Solution: Specify the versioning state of the bucket in the <VersioningConfiguration> field. Sample code:

    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>

RepeatedTags

Tag keys must be unique

  • Cause: The specified tag key already exists.

  • Solution: Call GetBucketTags to query information about the tags of the bucket, and then configure a new tag for the bucket. For more information, see PutBucketTags.

InvalidHostPutBucket

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

  • Cause: The value of the Host parameter is invalid.

  • Solution: Set the Host parameter to a standard domain name. For more information about regions and endpoints, see Regions and endpoints.

InvalidEncryptionAlgorithmError

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

  • Cause: The value of x-oss-server-side-encryption is invalid.

  • Solution: Set x-oss-server-side-encryption to AES256 or KMS. For more information about server-side encryption, see PutObject.

InvalidDataEncryptionAlgorithmError

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

  • Cause: The encryption algorithm specified in the request is invalid.

  • Solution: Make sure that the encryption algorithm specified in the request is supported. If you set x-oss-server-side-encryption to KMS, only the SM4 encryption algorithm is supported. For more information, see Server-side encryption.

InvalidParameter

The specified parameter KMS keyId is not valid

  • Cause: The CMK ID is invalid.

  • Solution: Specify a valid CMK ID. If you set x-oss-server-side-encryption to KMS and want to use a CMK to encrypt objects, you must specify the CMK ID in the request. Example: 9468da86-3509-4f8d-a61e-6eab1eac****.

InvalidWORMConfiguration

Invalid WORM Configuration

  • Cause: The specified retention policy is invalid.

  • Solution: Call InitiateBucketWorm to create a retention policy for a bucket. The following code provides an example on how to create a retention policy for a bucket:

    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>

InventoryExceedLimit

You are not allowed to create more inventory than limit

  • Cause: You have configured the maximum number of inventories for the bucket. The maximum number of inventories that can be configured for a bucket is 1,000.

  • Solution: Submit a ticket to increase the maximum number of inventories that can be configured for a bucket.

DailyInventoryExceedLimit

daily inventory object count exceed limit

  • Cause: The number of objects in the bucket exceeds the daily export limit for inventory lists.

  • Solution: If you want to export inventory lists on a daily basis, make sure that the number of objects in the bucket is less than 10 billion.

    If the number of objects in a bucket is greater than or equal to 10 billion, we recommend that you export inventory lists on a weekly basis.

WeeklyInventoryExceedLimit

weekly inventory object count exceed limit

  • Cause: The number of objects in the bucket exceeds the weekly export limit for inventory lists.

  • Solution: If you want to export inventory lists on a weekly basis, make sure that the number of objects in the bucket is less than 50 billion.

    If the number of objects in a bucket is greater than or equal to 50 billion:

    • Export inventory lists by prefix in several batches.

    • Submit a ticket to increase the number of inventory lists that can be exported.

BadRequest

Insufficient information. Origin request header needed

  • Cause: The request does not contain the Origin header.

  • Solution: Include the Origin header in the request. Before the browser sends a cross-origin request, the browser sends a preflight (OPTIONS) request that contains the Origin header to identify the origin from which the request is sent. The following code provides an example:origin

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

  • Cause: The request does not contain the Access-Control-Request-Method header.

  • Solution: Include the Access-Control-Request-Method header in the request. Before the browser sends a cross-origin request, the browser sends a preflight (OPTIONS) request that contains the Access-Control-Request-Method header to identify the method used for the request. The following code provides an example:method

RequestTimeout

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

  • Cause: The request timed out due to poor network performance or invalid network configurations.

  • Solution: Check your network performance and modify your network configurations as required. For more information, see Network connection timeout handling.

InvalidTaggingKey

The tagging key you provided is invalid

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

  • Solution: Make sure that the tag key is valid. An object tag is a key-value pair used to identify an object. Object tags must comply with the following rules:

    • A tag key can be up to 128 characters in length. A tag value can be up to 256 characters in length.

    • Tag keys and tag values are case-sensitive.

    • The tag keys and tag values can contain letters, digits, spaces, and the following special characters:

      + - = . _ : /

      If the tags in the HTTP header contain characters, the tag keys and tag values must be URL-encoded.

TooManyCname

You have attempted to create more cname than allowed

  • Cause: You have mapped the maximum number of domain names to the bucket. The maximum number of domain names that can be mapped to a bucket is 100.

  • Solution: Submit a ticket to increase the maximum number of domain names that can be mapped to a bucket.

InvalidChannelName

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 name is 1 to 64 characters in length.

ChannelName must not be empty

  • Cause: The ChannelName field is left empty.

  • Solution: Specify a valid value for the ChannelName field. The channel name must comply with the following naming rules:

    • The name must be encoded in UTF-8.

    • The name must be 1 to 64 characters in length.

    • The name cannot contain forward slashes (/) or backslashes (\).

The characters encoding must be utf-8

  • Cause: The encoding method of the channel name is invalid.

  • Solution: Encode the channel name in UTF-8.

ChannelName must not contain a slash

  • Cause: The channel name contains a slash.

  • Solution: Make sure that the channel name does not contain forward slashes (/) or backslashes (\).

InvalidPart

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

  • Cause: The part number or ETag value of a part in the CompleteMultipartUpload operation is invalid.

  • Solution: Make sure that the values of PartNumber and ETag are valid. OSS verifies the values of PartNumber and ETag when you call the CompleteMultipartUpload operation.

    • The value of PartNumber ranges from 1 to 10000. The part numbers listed in the request can be non-consecutive but must be sorted in ascending order. For example, if the part number of the first part is 1, the part number of the second part can be 5.

    • The ETag value of an object created when you call the CompleteMultipartUpload operation is the UUID of the object. The ETag value of an object can be used to check whether the object content is modified.

InvalidPartOrder

The list of parts was not in ascending order

  • Cause: The part numbers of the parts submitted when you call the CompleteMultipartUpload operation are not sorted in ascending order.

  • Solution: Make sure that the part numbers of the parts submitted when you call the CompleteMultipartUpload operation are sorted in ascending order. For example, if the part number of the first part is 1, the part number of the second part can be 5.

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

  • Cause: The value of PartNumber is invalid.

  • Solution: Make sure that the value of PartNumber ranges from 1 to 10000.

FilePartNotExist

The Part you read had been deleted

  • Cause: The part specified in the request does not exist.

  • Solution: Make sure that all parts are uploaded. For more information, see CompleteMultipartUpload.

InvalidXMLFormat

The XML you provided was not well-formed

  • Cause: Parameter configurations are not in the XML format.

  • Solution: Make sure that parameters are configured in the XML format.

InvalidRequest

Request specific response headers cannot be used for anonymous GET requests

  • Cause: The request does not contain all required parameters.

  • Solution: Make sure that all required parameters of the API operation are included in the request. For more information, see List of operations by function.

Security-token must be provided by query string parameter

  • Cause: The request does not contain a security token.

  • Solution: Make sure that the request contains a security token when a temporary user uses a signed URL to access OSS resources. Temporary users can use a signed URL in the following format to access OSS resources: http://oss-example.oss-cn-hangzhou.aliyuncs.com/oss-api.pdf?OSSAccessKeyId=nz2pc56s936****&Expires=1141889120&Signature=vjbyPxybdZaNmGa%2ByT272YEAiv****&security-token=SecurityToken. For more information, see Create a signed URL by using signature V1.

Size of playlist is too big

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

  • Solution: Make sure that the size of the playlist file does not exceed 1 MB.

No ts found in the playlist

  • Cause: No Transport Streams (TS) objects are found.

  • Solution: Ingest a stream to upload audio and video objects. For more information, see PutLiveChannel.

Playlist name must ends with \".m3u8\"

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

  • Solution: Check the uploaded file. If the uploaded file uses the HTTP Live Streaming (HLS) protocol, specify the name of the generated .m3u8 playlist file. The name of the generated playlist file must end with .m3u8 and can be 6 to 128 characters in length. Example: playlist.m3u8.

Master playlist has ts file

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

  • Solution: Make sure that only M3U8 files or TS files are included in the master playlist. Playlist files are in the M3U8 format and are used to record the information about the video files in the TS format. For more information, see Create HLS streams based on OSS.

MaxPOSTPreDataLengthExceededError

Your POST request fields preceding the upload file were too large

  • Cause: The size of the object that you want to upload by using PostObject exceeds 5 GB.

  • Solution: Make sure that the size of the object that you want to upload by using PostObject does not exceed 5 GB. For more information, see PostObject.

TooManyPipes

Maximal number of pipes supported is

  • Cause: The number of operations performed on the image exceeds the limit.

  • Solution: Make sure that the number of operations that you perform on the image does not exceed the limit.

FieldItemTooLong

Your name of form field is too long

  • Cause: The total size of the form fields in the PostObject request exceeds the limit.

  • Solution: Make sure that the form fields in the request excluding the file form field do not exceed 4 KB in size. For more information, see PostObject.

MalformedPOSTRequest

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

  • Cause: The format of a form field in the PostObject request is invalid.

  • Solution: Make sure that the format of the form field is valid.

    Form fields must be in the following format:

    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

    Take note of the following items when you initiate a PostObject request:

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

    • The request header and body are separated by \r\n--{boundary}. \r\n is displayed as a line feed.

    • The names of form fields are case-sensitive, such as policy, key, file, OSSAccessKeyId, OSSAccessKeyId, and Content-Disposition.

    • The last form field must be file.

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

    Note

    The preceding PostObject request is incomplete. For the complete request sample, see PostObject.

    For more information about the PostObject request, see the sample code in the following programming languages:

InvalidPolicyDocument

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

  • Cause: The policy header in the request does not contain the conditions field.

  • Solution: Make sure that the policy header contains at least one conditions field.

Invalid Policy: Invalid JSON: unknown char e

  • Cause: The format of the policy header in the request is invalid.

  • Solution: Make sure that the policy header contains double quotation marks (") and a backslash (\) is added before each escape character.

Invalid Policy: Invalid JSON: , or ] expected

  • Cause: The format of the policy header in the request is invalid.

  • Solution: Make sure that no commas (,) or right brackets (]) are missing in the policy header.

IncorrectNumberOfFilesInPOSTRequest

POST requires exactly one file upload per request

  • Cause: The number of file form fields in the PostObject request exceeds the limit. A PostObject request can contain only one file form field.

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

EntityTooSmall

Your proposed upload smaller than the minimum allowed size

  • Cause: The size of the object that you want to upload is smaller than the minimum value.

  • Solution: When you call PostObject to upload objects, configure the policy header to specify the valid values of form fields. You can configure the content-length-range condition to specify the maximum and minimum sizes of the object that you want to upload.

EntityTooLarge

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

  • Cause: The size of the object that you want to upload exceeds the upper limit.

  • Solution: When you call PostObject to upload objects, configure the policy header to specify the valid values of form fields. You can configure the content-length-range condition to specify the maximum and minimum sizes of the object that you want to upload. For more information, see PostObject.

MalformedXML

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

NoReplicationRule

No replication rule specified

  • Cause: No cross-region replication (CRR) rules are configured for the bucket specified in the request.

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

TooManyReplicationRules

OSS only support one replication rule now

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

  • Solution: Make sure that the bucket for which you want to configure a CRR rule does not have an existing CRR rule. You can configure only one CRR rule for each bucket.

InvalidBucketStatus

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

  • Cause: The versioning states of the source bucket and destination bucket in CRR are different.

  • Solution: Make sure that the source bucket and destination bucket in CRR have the same versioning state.

InvalidTargetBucket

The target bucket is invalid for bucket replication

  • Cause: The destination bucket in the CRR rule is invalid.

  • Solution: Call GetBucketReplicationLocation to query the regions in which the destination bucket can be located. You can determine the region of the destination bucket based on the response returned for the operation.

InvalidTargetLocation

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

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

  • Solution: Make sure that the region specified in the request is correct.

BadReplicationLocation

The replication location you choose is invalid

  • Cause: The destination region specified in the CRR request does not exist.

  • Solution: Make sure that the region specified in the request is correct.

NoReplicationLocation

The bucket does not have corresponding replication location

  • Cause: No matching destination region is available for the source region of CRR.

  • Solution: Check the available destination regions of CRR. For more information, see GetBucketReplicationLocation.

BucketReplicationAlreadyExist

Bucket replication already exists

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

  • Solution: Delete the existing CRR rule before you configure a new rule.

TooManyIncomingReplication

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

  • Cause: You have already configured 100 CRR rules for the bucket.

  • Solution: By default, up to 100 CRR rules can be configured for a bucket. If your business requires more than 100 CRR rules for a bucket, submit a ticket.

TooManyOutgoingReplication

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

  • Cause: You have already configured 100 CRR rules for the bucket.

  • Solution: By default, up to 100 CRR rules can be configured for a bucket. If your business requires more than 100 CRR rules for a bucket, submit a ticket.

CORSRuleBeyondLimit

The CORS Rules num is beyond limit

  • Cause: The number of cross-origin resource sharing (CORS) rules configured for the bucket exceeds the limit.

  • Solution: Make sure that the number of CORS rules configured for the bucket does not exceed the limit. You can configure up to 10 CORS rules for a bucket. For more information, see PutBucketCors.

TooManyTags

The bucket tags num is beyond limit

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

  • Solution: Make sure that the number of tags configured for the bucket does not exceed the limit. You can configure up to 20 tags for a bucket. For more information, see PutBucketTags.

TooManyPrefixes

The bucket replication rule's prefixes number is beyond limit

  • Cause: The number of prefixes specified in the CRR rule exceeds the limit.

  • Solution: Make sure that the number of prefixes specified in the CRR rule does not exceed the limit. You can specify up to 10 prefixes in a CRR rule to synchronize only objects whose names contain the specified prefixes to the destination bucket.

TooManyFilterObjectTags

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

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

  • Solution: Make sure that the number of object tags specified in the CRR rule does not exceed the limit. You can specify up to 10 tags in a CRR rule to synchronize only objects that have the specified tags to the destination bucket.

InvalidDigest

The Content-MD5 you specified was invalid

InvalidCRC64

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

  • Cause: The CRC-64 value returned by the server is different from the CRC-64 value calculated by the local client.

  • Solution: For more information, see Check data integrity by using CRC-64.

InlineDataTooLarge

Inline data exceeds the maximum allowed size

  • Cause: The size of the object that you want to upload exceeds the limit.

  • Solution: Make sure that the size of the object does not exceed the limit for the method used to upload the object.

    • An object that you want to upload by using simple upload cannot be larger than 5 GB in size. For more information, see Simple upload.

    • An object that you want to upload by using form upload cannot be larger than 5 GB in size. For more information, see Form upload.

    • An object that you want to upload by using append upload cannot be larger than 5 GB in size. For more information, see Append upload.

    • An object that you want to upload by using multipart upload cannot be larger than 48.8 TB in size. For more information, see Multipart upload.

ImageTooLarge

Maximal size of image supported is

  • Cause: The size of the source image exceeds the limit.

  • Solution: Make sure that the source image meets the following requirements:

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

    • The width or height of the source image cannot exceed 4,096 pixels for image rotation.

    • Each edge of the source image cannot exceed 30,000 pixels.

IncompleteBody

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

  • Cause: The value of the Content-Length request header is different from the size of the data that is sent.

  • Solution: Set the Content-Length header to the actual size of the data that you want to send.

KmsServiceNotEnabled

This user does not turn on KMS service

  • Cause: KMS is not activated when you set the encryption method for server-side encryption to KMS.

  • Solution: Make sure that KMS is activated before you set the encryption method for server-side encryption to KMS. For more information, see Purchase a dedicated KMS instance.

OperationNotSupported

The operation is not supported for this resource

  • Cause: The specified operation is not supported for the resources. This error may occur in the following scenarios:

    • Convert an appendable object or a symbolic link to a Cold Archive or Deep Cold Archive object.

    • Call the RestoreObject operation to restore an object whose storage class is not Archive, Cold Archive, or Deep Cold Archive.

  • Solutions:

    • Call the PutObject operation to upload an object with the same name to overwrite the appendable object as a normal object. Then, convert the storage class of the normal object to Cold Archive or Deep Cold Archive.

    • When you call the RestoreObject operation to restore an object, make sure that the storage class of the object is Archive, Cold Archive, or Deep Cold Archive.

    For more information about the supported operations of different resources, see List of operations by function.

NotSymlink

The object is not symlink

  • Cause: The operation is not performed on a symbolic link.

  • Solution: Make sure that the PutSymlink or GetSymlink operation is performed only on symbolic links.

InvalidTag

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

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

  • Solution: Make sure that the key and value of the tag configured for the bucket comply with the following naming rules:

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

    • The key can be up to 64 characters in length and cannot contain the http://, https://, or Aliyun. prefix. The key cannot be left empty.

    • The value can be up to 128 characters in length. The value can be left empty.

InvalidEncryptionRequest

The parameters of client encryption are allowed to be set once

  • Cause: You attempted to call the CopyObject operation to modify object metadata protected by client-side encryption.

  • Solution: Do not use CopyObject to modify object metadata. After you upload objects encrypted on the client, object metadata related to client-side encryption is protected. In this case, CopyObject cannot be used to modify object metadata. For more information, see CopyObject.

Miss some necessary client encryption meta parameters

  • Cause: The request does not contain all required parameters related to client-side encryption.

  • Solution: Make sure that all required parameters described in the following table are specified in the request.

    Parameter

    Description

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

    The encrypted data key, which is a string encrypted by using a CMK and encoded in Base64.

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

    The initial value, which is randomly generated for data encryption. The value is a string encrypted by using a CMK and encoded in Base64.

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

    The algorithm used to encrypt data.

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

    The algorithm used to encrypt the data key.

The parts count calculated by client encryption meta is too large

  • Cause: The number of parts calculated in the client-side encryption scenario exceeds the limit.

  • Solution: Make sure that the object is split into no more than 10,000 parts.

The client encryption meta data_size or part_size is invalid

  • Cause: The total size or part size in the client-side encryption scenario is invalid.

  • Solution: Make sure that the total object size and the part size are valid. The part size must be a positive integer multiple of 16. When you perform client-side encryption on an object that you want to upload by using multipart upload, you must configure the total size (x-oss-meta-client-side-encryption-data-size) and part size (x-oss-meta-client-side-encryption-part-size) of the object during multipart upload initiation. For more information, see Client-side encryption.

The client encryption part list is unexpected with init_multipart setted

  • Cause: The number of parts uploaded to OSS is different from the number of parts specified when the multipart upload task is initiated.

  • Solution: Make sure that the specified number of parts is the same as the number of parts that are uploaded to OSS.

The partId must less or equal to expectedPartNumber

  • Cause: The ID of a part is greater than the total number of parts.

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

The partSize must same with init_multipart setted except last part

  • Cause: The part size in the UploadPart operation is different from the part size specified when the multipart upload task is initiated.

  • Solution: Make sure that the size of all parts except for the last part is the same as the part size specified when the multipart upload task is initiated. For more information, see UploadPart.

The last partSize must same with init_multipart setted

  • Cause: The total size of the uploaded parts is different from the total size specified when the multipart upload task is initiated.

  • Solution: After the last part is uploaded, make sure that the total size of the uploaded parts is the same as the total size specified when the multipart upload task is initiated. For more information, see CompleteMultipartUpload.

The client encryption meta is inconsistent with init_multipart setted

  • Cause: The encryption information about the multipart upload task configured on the client is different from the encryption information configured when the multipart upload task is initiated.

  • Solution: Make sure that the encryption information about the multipart upload task configured on the client is the same as the encryption information configured when the multipart upload task is initiated. For more information, see Client-side encryption.

Client encryption doesn't support upload part copy

  • Cause: UploadPartCopy cannot be called to upload a part from an object that is encrypted on the client.

  • Solution: You can call UploadPartCopy to upload a part only when you copy data from an existing object that is not encrypted on the client. For more information, see UploadPartCopy.

UserKeyMustBeSpecified

User key must be specified

  • Cause: The request does not contain the name of the object that you want to delete.

  • Solution: Specify the name of the object that you want to delete in the request. For more information, see DeleteMultipleObjects.

InvalidTargetBucketForLogging

Put bucket log requester is not target bucket owner

  • Cause: The destination bucket specified to store log objects does not exist.

  • Solution: Specify a valid destination bucket.

InvalidPart

One or more of the specified parts could not be found or the specified entity tag might not have matched the part's entity tag

  • Cause: The part number or ETag value of a part submitted when you call the CompleteMultipartUpload operation is invalid.

  • Solution: Make sure that the part numbers and ETag values of all parts submitted when you call the CompleteMultipartUpload operation are valid. For more information, see CompleteMultipartUpload.

InvalidPartOrder

The list of parts was not in ascending order

  • Cause: The part numbers of the parts submitted when you call the CompleteMultipartUpload operation are not sorted in ascending order.

  • Solution: Make sure that the part numbers of the parts submitted when you call the CompleteMultipartUpload operation are sorted in ascending order. For more information, see CompleteMultipartUpload.

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

  • Cause: The value of partNumber is invalid. The valid values of partNumber range from 1 to 10000.

  • Solution: Make sure that the value of partNumber is within the valid range. For more information, see CompleteMultipartUpload.

InvalidEncryptionAlgorithmError

The encryption algorithm specified is not valid

  • Cause: The value of x-oss-server-side-encryption is invalid. Valid values: AES256 and KMS.

  • Solution: Make sure that x-oss-server-side-encryption is set to a valid value. For more information, see PutObject.

InvalidTargetType

The symbolic's target file type is invalid

  • Cause: The object is a symbolic link, and the object to which the link points is also a symbolic link.

  • Solution: Make sure that the object to which the symbolic link points is not a symbolic link.

MissingAccessKeyId

MissingAccessKeyId AccessKeyId is mandatory for this action

  • Cause: The AccessKey ID is not specified.

  • Solution: Specify a valid AccessKey ID.