Error codes

Table 1. General
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
Table 2. Common response error codes for new Object Lock requests
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
Table 3. CreateBucket error code responses for Object Lock
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
Table 4. PutBucketReplication error code responses for Object Lock
Error Code Description HTTP Status Code
InvalidRequest Replication configuration cannot be applied to an Object Lock enabled bucket 400 Bad Request
Table 5. PutBucketVersioning error code responses for Object Lock
Error Code Description HTTP Status Code
InvalidBucketState An Object Lock configuration is present on this bucket, so the versioning state cannot be changed. 409
Table 6. PutObjectLockConfiguration error code responses for Object Lock
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
Table 7. GetObjectLockConfiguration error code responses for Object Lock
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
Table 8. PutObjectLegalHold error code responses for Object Lock
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
Table 9. GetObjectLegalHold error code responses for Object Lock
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
Table 10. GetObjectLegalHold error code responses for Object Lock
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
Table 11. PutObjectRetention error code responses for Object Lock
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
Table 12. GetObjectRetention error code responses for Object Lock
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
Table 13. Write Object (applies for PutObject / CopyObject / CreateMultipartUpload / PostObject) error code responses for Object Lock
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
Table 14. PutObject error code responses for Object Lock
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
Table 15. UploadPart error code responses for Object Lock
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
Table 16. DeleteObject error code responses for Object Lock
Error Code Description HTTP Status Code
AccessDenied AccessDenied 403 Forbidden
Table 17. Anonymous User Writes to Bucket with PUBLIC_WRITE ACL error code responses for Object Lock
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