Error codes
| Error Code | Description | HTTP Status Code |
|---|---|---|
| AccessDenied | Access Denied. Authentication or authorization failed for the request. | 403 Forbidden |
| AccessDenied | Access Denied - Server-Side Encryption with Customer-Provided Keys is not enabled for this vault. | 403 Forbidden |
| BadDigest | The Content-MD5 you specified did not match what we received | 400 Bad Request |
| BadRequest | Operations on protected vaults are not supported on this interface | 400 Bad Request |
| BucketAlreadyExists | The requested bucket name is not available. The bucket namespace is shared by all users of the system. Please select a different name and try again. | 409 Conflict |
| BucketNotEmpty | The bucket you tried to delete is not empty. | 409 Conflict |
| CredentialsNotSupported | This request does not support credentials. | 400 Bad Request |
| EntityTooSmall | Your proposed upload is smaller than the minimum allowed object size. | 400 Bad Request |
| EntityTooLarge | Your proposed upload exceeds the maximum allowed object size. | 400 Bad Request |
| IllegalVersioningConfigurationException | Indicates that the versioning configuration specified in the request is invalid. | 400 Bad Request |
| IncompleteBody | You did not provide the number of bytes specified by the Content-Length HTTP header. | 400 Bad Request |
| IncorrectNumberOfFilesInPostRequest | POST requires exactly one file upload per request. | 400 Bad Request |
| InlineDataTooLarge | Inline data exceeds the maximum allowed size. | 400 Bad Request |
| InternalError | We encountered an internal error. Please try again. | 500 Internal Server Error |
| InvalidAccessKeyId | The AWS access key Id you provided does not exist in our records. | 403 Forbidden |
| InvalidArgument | Invalid Argument | 400 Bad Request |
| InvalidArgument | Requests specifying Server-Side Encryption with Customer-Provided Keys must be made over a secure connection. | 400 Bad Request |
| InvalidArgument | Requests specifying Server-Side Encryption with Customer-Provided Keys must provide an appropriate secret key. | 400 Bad Request |
| InvalidArgument | Requests specifying Server-Side Encryption with Customer-Provided Keys must provide the client calculated MD5 of the secret key. | 400 Bad Request |
| InvalidArgument | The MD5 hash of the secret key was improperly encoded. The MD5 hash must be Base64 encoded. | 400 Bad Request |
| InvalidArgument | The calculated MD5 hash of the key did not match the hash that was provided. | 400 Bad Request |
| InvalidArgument | Maximum retention is outside the range defined for the service | 400 Bad Request |
| InvalidArgument | Minimum retention is outside the range defined for the service | 400 Bad Request |
| InvalidArgument | Default retention is outside the range defined by Minimum Retention and Maximum Retention | 400 Bad Request |
| InvalidArgument | The retention period of an object can only be extended up to the bucket maximum retention period from the time of the request | 400 Bad Request |
| InvalidArgument | The total retention period of an object must be greater than or equal to the minimum retention for the bucket. If permanent retention is enabled for the bucket, the retention period can be set to -2 | 400 Bad Request |
| InvalidArgument | New retention expiration date must be greater than current time | 400 Bad Request |
| InvalidArgument | The target bucket does not have permanent retention enabled | 400 Bad Request |
| InvalidArgument | Legal hold ID cannot be null | 400 Bad Request |
| InvalidArgument | The object is under permanent retention, thus the retention period cannot be modified | 400 Bad Request |
| InvalidBucketName | The specified bucket is not valid. | 400 Bad Request |
| InvalidBucketState | The request is not valid with the current state of the bucket. | 409 Conflict |
| InvalidBucketState | Requested status change is not allowed for the bucket. Status requested: {status_specified_in_request} | 409 Conflict |
| InvalidBucketState | Protection cannot be enabled on a bucket with versioning enabled | 409 Conflict |
| InvalidBucketState | Protection cannot be enabled on a bucket with indexing disabled | 409 Conflict |
| InvalidBucketState | Indexing cannot be disabled for a Protected bucket | 409 Conflict |
| InvalidBucketState | Versioning cannot be enabled for a Protected bucket | 409 Conflict |
| InvalidDigest | The Content-MD5 you specified is not valid. | 400 Bad Request |
| InvalidEncryptionAlgorithmError | The Encryption request you specified is not valid. Supported value: AES256. | 400 Bad Request |
| InvalidLocationConstraint | The specified location constraint is not valid. For more information about regions, see How to Select a Region for Your Buckets. | 400 Bad Request |
| InvalidProtectionState | The target bucket is not protected | 403 Forbidden |
| InvalidObjectState | The operation is not valid for the current state of the object. | 403 Forbidden |
| InvalidPart | One or more of the specified parts could not be found. The part might not have been uploaded, or the specified entity tag might not have matched the part’s entity tag. | 400 Bad Request |
| InvalidPartOrder | The list of parts was not in ascending order. Parts list must specified in order by part number. | 400 Bad Request |
| InvalidRange | The requested range cannot be satisfied. | 416 Requested Range Not Satisfiable |
| InvalidRequest | Please use AWS4-HMAC-SHA256. | 400 Bad Request |
| InvalidRequest | The object was stored using a form of Server-Side Encryption. The correct parameters must be provided to retrieve the object. | 400 Bad Request |
| InvalidRequest | The encryption parameters are not applicable to this object. | 400 Bad Request |
| InvalidRequest | The object was stored using a form of Server-Side Encryption. The correct parameters must be provided to retrieve the object. | 400 Bad Request |
| InvalidRequest | Operations on Protected Vaults not supported on this interface | 400 Bad Request |
| InvalidRequest | Request contains too many retention headers | 400 Bad Request |
| InvalidRequest | Retention-Period or Retention-Expiration-Date is outside the retention range defined for the bucket | 400 Bad Request |
| InvalidRequest | Request contains duplicate copies of the same header: <header name> | 400 Bad Request |
| InvalidRequest | The Retention-Directive is set to COPY and the Retention period of the source object is outside the range configured for the destination bucket | 400 Bad Request |
| InvalidRequest | The Retention-Directive is set to COPY and the request includes one or more retention or Legal Hold headers | 400 Bad Request |
| InvalidRequest | Request does not have a request header | 400 Bad Request |
| InvalidRequest | Request signature type is not valid for protected objects or protected vaults. | 400 Bad Request |
| InvalidRequest | Protection Feature is Disabled | 400 Bad Request |
| InvalidRequest | Cannot add and remove legal hold in the same request | 400 Bad Request |
| InvalidRequest | The action "add" or "remove" must be specified | 400 Bad Request |
| InvalidRequest | The Service does not support permanent retention | 400 Bad Request |
| InvalidRequestForLegalReasons | The object is protected | 451 Unavailable For Legal Reasons |
| InvalidRequestForLegalReasons | New retention period is less than the old retention period | 451 Unavailable For Legal Reasons |
| InvalidSecurity | The provided security credentials are not valid. | 403 Forbidden |
| InvalidURI | Couldn’t parse the specified URI. | 400 Bad Request |
| KeyTooLong | Your key is too long. | 400 Bad Request |
| LegalHoldTooLong | The legal hold identifier exceeded the maximum legal hold identifier length | 400 Bad Request |
| LegalHoldTooShort | The legal hold identifier is below the legal hold identifier minimum length | 400 Bad Request |
| LegalHoldDuplicate | The legal hold could not be added because a legal hold with the identifier already exists | 409 Conflict |
| LegalHoldIDInvalid | The legal hold identifier contains unsupported characters | 400 Bad Request |
| LegalHoldTooMany | The object already has the maximum number of legal holds | 400 Bad Request |
| LegalHoldNotFound | The legal hold identifier being removed was not found on the object | 404 Not Found |
| MalformedACLError | The XML you provided was not well-formed or did not validate against our published schema. | 400 Bad Request |
| MalformedPOSTRequest | The body of your POST request is not well-formed multipart/form-data. | 400 Bad Request |
| MalformedXML | The XML provided was not well-formed or did not validate against the published schema. | 400 Bad Request |
| MaxMessageLengthExceeded | Your request was too big. | 400 Bad Request |
| MaxPostPreDataLengthExceededError | Your POST request fields preceding the upload file were too large. | 400 Bad Request |
| MetadataTooLarge | Your metadata headers exceed the maximum allowed metadata size. | 400 Bad Request |
| MethodNotAllowed | The specified method is not allowed against this resource. | 405 Method Not Allowed |
| MethodNotAllowed | Operation not supported for protected buckets | 405 Method Not Allowed |
| MissingContentLength | You must provide the Content-Length HTTP header. | 411 Length Required |
| MissingDigest | Missing required content hash for this request: Content-MD5 or x-amz-content-sha256 or x-amz-checksum- header. | 400 Bad Request |
| MissingRequestBodyError | Request body is empty. | 400 Bad Request |
| NoSuchBucket | The specified bucket does not exist. | 404 Not Found |
| NoSuchKey | The specified key does not exist. | 404 Not Found |
| NoSuchObject | The object does not exist | 404 Not Found |
| NoSuchUpload | The specified multipart upload does not exist. The upload ID might be invalid, or the multipart upload might have been aborted or completed. | 404 Not Found |
| NoSuchVersion | Indicates that the version ID specified in the request does not match an existing version. | 404 Not Found |
| NotImplemented | A header you provided implies functionality that is not implemented. | 501 Not Implemented |
| NotImplementedForMirrorSetProtection | The API does not support the setting of protection for mirror destination. | 501 Not Implemented |
| OperationAborted | A conflicting conditional operation is currently in progress against this resource. Try again. | 409 Conflict |
| PreconditionFailed | At least one of the preconditions you specified did not hold. | 412 Precondition |
| ProtectedBucketNotEmpty | The bucket cannot be deleted because it is a protected bucket and is not empty. | 451 Unavailable for Legal Reasons |
| Redirect | Temporary redirect. | 307 Moved Temporarily |
| RequestIsNotMultiPartContent | Bucket POST must be of the enclosure-type multipart/form-data. | 400 Bad Request |
| RequestTimeout | Your socket connection to the server was not read from or written to within the timeout period. | 400 Bad Request |
| RequestTimeTooSkewed | The difference between the request time and the server’s time is too large. | 403 Forbidden |
| SignatureDoesNotMatch | The request signature we calculated does not match the signature you provided. Check your AWS secret access key and signing method. For more information, see REST Authentication and SOAP Authentication for details. | 403 Forbidden |
| ServiceUnavailable | Reduce your request rate. | 503 Service Unavailable |
| SlowDown | Reduce your request rate. | 503 Slow Down |
| TemporaryRedirect | You are being redirected to the bucket while DNS updates. | 307 Moved Temporarily |
| TooManyBuckets | You have attempted to create more buckets than allowed. | 400 Bad Request |
| UnexpectedContent | This request does not support content. | 400 Bad Request |
| UnresolvableGrantByEmailAddress | The email address you provided does not match any account on record. | 400 Bad Request |
| UserKeyMustBeSpecified | The bucket POST must contain the specified field name. If it is specified, check the order of the fields. | 400 Bad Request |
| VaultQuotaExceeded | The capacity used on the target vault has exceeded a hard quota. This parameter is applicable for Vault mode systems. | 507 Insufficient Storage |
| BucketQuotaExceeded | The capacity used on the target bucket has exceeded a hard quota, This parameter is applicable for Container mode systems. | 507 InsufficientStorage |
| Error Code | Description | HTTP Status Code |
|---|---|---|
| UnsupportedOperation | The operation requested is not supported | 400 Bad Request |
| ObjectLockNotAvailable | Object Lock is supported on IBM Cloud COS standard plan only | 400 Bad Request |
| ObjectLockNotAvailable | Object Lock is supported on IBM Cloud COS standard plan only | 400 Bad Request |
| InvalidRequest | Missing required header for this request: Content-MD5 or x-amz-content-sha256 with signed value | 400 Bad Request |
| InvalidRequest | Missing required header for this request: Content-MD5 OR x-amz-checksum- OR x-amz-content-sha256 with signed value | 400 Bad Request |
| InvalidDigest | The Content-MD5 you specified was invalid. | 400 Bad Request |
| BadDigest | The Content-MD5 you specified did not match what we received. | 400 Bad Request |
| InvalidBucketName | The specified bucket is not valid. | 404 Not Found |
| NoSuchBucket | The specified bucket does not exist. | 404 Not Found |
| NoSuchBucket | The specified bucket does not exist. | 404 Not Found |
| NoSuchBucket | The specified bucket does not exist. | 404 Not Found |
| NoSuchKey | The specified key does not exist. | 404 Not Found |
| InvalidArgument | Invalid version id specified | 400 Bad Request |
| NoSuchVersion | The specified version does not exist. | 404 Not Found |
| MethodNotAllowed | The specified method is not allowed against this resource. | 405 Method Not Allowed |
| Error Code | Description | HTTP Status Code |
|---|---|---|
| xxx | xxx | 200 |
| UnsupportedOperation | The operation requested is not supported | 400 Bad Request |
| UnsupportedOperation | The operation requested is not supported | 400 Bad Request |
| ObjectLockNotAvailable | Object Lock is supported on IBM Cloud COS standard plan only | 400 Bad Request |
| ObjectLockNotAvailable | Object Lock is supported on IBM Cloud COS standard plan only | 400 Bad Request |
| AccessDenied | Access Denied | 403 Forbidden |
| AccessDenied | Access Denied | 403 Forbidden |
| Error Code | Description | HTTP Status Code |
|---|---|---|
| InvalidRequest | Replication configuration cannot be applied to an Object Lock enabled bucket | 400 Bad Request |
| Error Code | Description | HTTP Status Code |
|---|---|---|
| InvalidBucketState | An Object Lock configuration is present on this bucket, so the versioning state cannot be changed. | 409 |
| Error Code | Description | HTTP Status Code |
|---|---|---|
| UnsupportedOperation | The operation requested is not supported | 400 Bad Request |
| UnsupportedOperation | The operation requested is not supported | 400 Bad Request |
| InvalidRequest | Versioning must be 'Enabled' on the bucket to apply an Object Lock configuration | 400 Bad Request |
| InvalidRequest | Object Lock cannot be enabled for a bucket with Replication enabled | 400 Bad Request |
| xxx | xxx | 200 |
| ObjectLockNotAvailable | Object Lock is supported on IBM Cloud COS standard plan only | 400 Bad Request |
| ObjectLockNotAvailable | Object Lock is supported on IBM Cloud COS standard plan only | 400 Bad Request |
| AccessDenied | Access Denied | 403 Forbidden |
| AccessDenied | Access Denied | 403 Forbidden |
| MissingRequestBodyError | Request body is empty | 400 Bad Request |
| InvalidBucketName | The specified bucket is not valid. | 400 Bad Request |
| NoSuchBucket | The specified bucket does not exist | 400 Bad Request |
| InvalidArgument | Default retention period must be a positive integer value. | 400 Bad Request |
| InvalidArgument | Default retention period too large. | 400 Bad Request |
| InvalidArgument | Default retention period must be a positive integer value. | 400 Bad Request |
| InvalidArgument | Default retention period too large. | 400 Bad Request |
| MalformedXML | The XML you provided was not well-formed or did not validate against our published schema | 400 Bad Request |
| MalformedXML | The XML you provided was not well-formed or did not validate against our published schema | 400 Bad Request |
| MalformedXML | The XML you provided was not well-formed or did not validate against our published schema | 400 Bad Request |
| MalformedXML | Retention Mode must be 'COMPLIANCE' | 400 Bad Request |
| MalformedXML | The XML you provided was not well-formed or did not validate against our published schema | 400 Bad Request |
| MalformedXML | The XML you provided was not well-formed or did not validate against our published schema | 400 Bad Request |
| MalformedXML | The XML you provided was not well-formed or did not validate against our published schema | 400 Bad Request |
| Error Code | Description | HTTP Status Code |
|---|---|---|
| xxx | xxx | 200 |
| ObjectLockConfigurationNotFoundError | Object Lock configuration does not exist for this bucket | 404 |
| ObjectLockConfigurationNotFoundError | Object Lock configuration does not exist for this bucket | 404 |
| AccessDenied | Access Denied | 403 Forbidden |
| AccessDenied | Access Denied | 403 Forbidden |
| Error Code | Description | HTTP Status Code |
|---|---|---|
| UnsupportedOperation | The operation requested is not supported | 400 Bad Request |
| InvalidRequest | Bucket is missing Object Lock Configuration | 400 Bad Request |
| InvalidRequest | Bucket is missing Object Lock Configuration | 400 Bad Request |
| AccessDenied | Access Denied | 403 Forbidden |
| AccessDenied | Access Denied | 403 Forbidden |
| InvalidArgument | Conflicting query string parameters: legal-hold, retention | 400 Bad Request |
| MalformedXML | The XML you provided was not well-formed or did not validate against our published schema | 400 Bad Request |
| MalformedXML | The XML you provided was not well-formed or did not validate against our published schema | 400 Bad Request |
| MalformedXML | The XML you provided was not well-formed or did not validate against our published schema | 400 Bad Request |
| MalformedXML | The XML you provided was not well-formed or did not validate against our published schema | 400 Bad Request |
| Error Code | Description | HTTP Status Code |
|---|---|---|
| xxx | xxx | 200 |
| InvalidRequest | Bucket is missing Object Lock Configuration | 400 |
| InvalidRequest | Bucket is missing Object Lock Configuration | 400 |
| AccessDenied | Access Denied | 403 Forbidden |
| AccessDenied | Access Denied | 403 Forbidden |
| InvalidArgument | Conflicting query string parameters: legal-hold, retention | 400 |
| NoSuchObjectLockConfiguration | The specified object does not have a ObjectLock configuration | 404 |
| Error Code | Description | HTTP Status Code |
|---|---|---|
| xxx | xxx | 200 |
| InvalidRequest | Bucket is missing Object Lock Configuration | 400 Bad Request |
| InvalidRequest | Bucket is missing Object Lock Configuration | 400 Bad Request |
| AccessDenied | Access Denied | 403 Forbidden |
| AccessDenied | Access Denied | 403 Forbidden |
| InvalidArgument | Conflicting query string parameters: legal-hold, retention | 400 Bad Request |
| NoSuchObjectLockConfiguration | The specified object does not have a ObjectLock configuration | 404 |
| Error Code | Description | HTTP Status Code |
|---|---|---|
| AccessDenied | Access Denied | 403 Forbidden |
| AccessDenied | Access Denied | 403 Forbidden |
| AccessDenied | Access Denied | 403 Forbidden |
| AccessDenied | Access Denied | 403 Forbidden |
| InvalidArgument | Conflicting query string parameters: legal-hold, retention | 400 Bad Request |
| InvalidArgument | The retain until date must be in the future! | 400 Bad Request |
| InvalidArgument | The retain until date is too far in the future! | 400 Bad Request |
| InvalidRequest | Bucket is missing Object Lock Configuration | 400 Bad Request |
| InvalidRequest | Bucket is missing Object Lock Configuration | 400 Bad Request |
| MalformedXML | The XML you provided was not well-formed or did not validate against our published schema | 400 Bad Request |
| MalformedXML | The XML you provided was not well-formed or did not validate against our published schema | 400 Bad Request |
| MalformedXML | Retention Mode must be 'COMPLIANCE' | 400 Bad Request |
| MalformedXML | The XML you provided was not well-formed or did not validate against our published schema | 400 Bad Request |
| MalformedXML | The XML you provided was not well-formed or did not validate against our published schema | 400 Bad Request |
| MalformedXML | The XML you provided was not well-formed or did not validate against our published schema | 400 Bad Request |
| MalformedXML | The XML you provided was not well-formed or did not validate against our published schema | 400 Bad Request |
| UnsupportedOperation | The operation requested is not supported | 400 Bad Request |
| Error Code | Description | HTTP Status Code |
|---|---|---|
| xxx | xxx | 200 |
| InvalidRequest | Bucket is missing Object Lock Configuration | 400 Bad Request |
| InvalidRequest | Bucket is missing Object Lock Configuration | 400 Bad Request |
| AccessDenied | Access Denied | 403 Forbidden |
| AccessDenied | Access Denied | 403 Forbidden |
| InvalidArgument | Conflicting query string parameters: legal-hold, retention | 400 Bad Request |
| NoSuchObjectLockConfiguration | The specified object does not have a ObjectLock configuration | 404 |
| Error Code | Description | HTTP Status Code |
|---|---|---|
| xxx | xxx | 200 |
| InvalidRequest | Bucket is missing ObjectLockConfiguration | 400 Bad Request |
| InvalidRequest | Bucket is missing ObjectLockConfiguration | 400 Bad Request |
| InvalidRequest | Bucket is missing ObjectLockConfiguration | 400 Bad Request |
| AccessDenied | Access Denied | 403 Forbidden |
| AccessDenied | Access Denied | 403 Forbidden |
| InvalidArgument | x-amz-object-lock-retain-until-date and x-amz-object-lock-mode must both be supplied | 400 Bad Request |
| InvalidArgument | x-amz-object-lock-retain-until-date and x-amz-object-lock-mode must both be supplied | 400 Bad Request |
| InvalidArgument | Legal Hold must be either of 'ON' or 'OFF' | 400 Bad Request |
| InvalidArgument | The retain until date must be provided in ISO 8601 format | 400 Bad Request |
| InvalidArgument | The retain until date must be in the future! | 400 Bad Request |
| InvalidArgument | The retain until date is too far in the future! | 400 Bad Request |
| InvalidArgument | Retention Mode must be 'COMPLIANCE' | 400 Bad Request |
| InvalidArgument | Unknown wormMode directive. | 400 Bad Request |
| Error Code | Description | HTTP Status Code |
|---|---|---|
| InvalidRequest | Content-MD5 or x-amz-checksum- HTTP header or AWS Signature Version 4 signed payload is required for Put Object requests with Object Lock parameters | 400 Bad Request |
| InvalidRequest | HTTP header Content-MD5, x-amz-checksum* or x-amz-content-sha256 with signed value is required for Put Object requests with Object Lock parameters | 400 Bad Request |
| Error Code | Description | HTTP Status Code |
|---|---|---|
| InvalidRequest | Content-MD5 or x-amz-checksum- HTTP header or AWS Signature Version 4 signed payload is required for Put Part requests with Object Lock parameters | 400 Bad Request |
| InvalidRequest | HTTP header Content-MD5, x-amz-checksum* or x-amz-content-sha256 with signed value is required for Put Part requests with Object Lock parameters | 400 Bad Request |
| Error Code | Description | HTTP Status Code |
|---|---|---|
| AccessDenied | AccessDenied | 403 Forbidden |
| Request | Bucket Scenario | Error Code | Description | HTTP Status Code |
|---|---|---|---|---|
| PutObject | OL disabled | xxx | xxx | 200 |
| PostObject | OL disabled | xxx | xxx | 200 |
| CopyObject | OL disabled | xxx | xxx | 200 |
| CreateMultipartUpload | OL disabled | xxx | xxx | 200 |
| PutObject |
OL enabled No default retention |
xxx | xxx | 200 |
| PostObject |
OL enabled No default retention |
xxx | xxx | 200 |
| CopyObject |
OL enabled No default retention |
xxx | xxx | 200 |
| CreateMultipartUpload |
OL enabled No default retention |
xxx | xxx | 200 |
|
PutObject with OL headers |
OL enabled | AccessDenied | Access Denied | 403 Forbidden |
|
PostObject with OL headers |
OL enabled | AccessDenied | Access Denied | 403 Forbidden |
|
CopyObject with OL headers |
OL enabled | AccessDenied | Access Denied | 403 Forbidden |
|
CreateMultipartUpload with OL headers |
OL enabled | AccessDenied | Access Denied | 403 Forbidden |
| PutObject |
OL enabled with default retention |
AccessDenied | Anonymous users cannot write objects with Object Lock parameters. Please authenticate. | 403 Forbidden |
| PostObject |
OL enabled with default retention |
AccessDenied | Anonymous users cannot write objects with Object Lock parameters. Please authenticate. | 403 Forbidden |
| CopyObject |
OL enabled with default retention |
AccessDenied | Anonymous users cannot write objects with Object Lock parameters. Please authenticate. | 403 Forbidden |
| CreateMultipartUpload |
OL enabled with default retention |
AccessDenied | Anonymous users cannot write objects with Object Lock parameters. Please authenticate. | 403 Forbidden |