# Responses

### Successful response <a href="#success" id="success"></a>

If there are no errors, ColdStack responds with 2xx HTTP codes. The response code and body depend on the request and are discussed in the request descriptions.

### Error response <a href="#error" id="error"></a>

When an error occurs, ColdStack responds with a message with the appropriate HTTP code and optional XML description.

```
<?xml version="1.0" encoding="UTF-8"?>
<Error>
  <Code>NoSuchKey</Code>
  <Message>The resource you requested does not exist</Message>
  <Resource>/mybucket/myfoto.jpg</Resource>
  <RequestId>4442587FB7D0A2F9</RequestId>
</Error>
```

| Tag         | Description                                                                                                                       |
| ----------- | --------------------------------------------------------------------------------------------------------------------------------- |
| `Code`      | <p>Error code.<br><br>See the list of codes below in the text.</p>                                                                |
| `Message`   | Description of the error in English.                                                                                              |
| `RequestId` | <p>The identifier of the request that caused the error.<br><br>Equal to the value of the title <code>x-amz-request-id</code>.</p> |
| `Resource`  | The bucket or object that encountered an error.                                                                                   |

#### Error codes <a href="#error_codes" id="error_codes"></a>

| HTTP | Error code                            | Description                                                                                                                                                                                                                                      |
| ---- | ------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 301  | `PermanentRedirect`                   | The specified bucket should always be addressed to the address indicated in the response.                                                                                                                                                        |
| 307  | `Redirect`                            | The specified bucket should be temporarily addressed at the address indicated in the response.                                                                                                                                                   |
| 307  | `TemporaryRedirect`                   | Redirect for the duration of the DNS update.                                                                                                                                                                                                     |
| 400  | `BadDigest`                           | The hash passed in the header `Content-MD5`does not match the one calculated on the ColdStack side.                                                                                                                                              |
| 400  | `CredentialsNotSupported`             | Credentials are not supported.                                                                                                                                                                                                                   |
| 400  | `EntityTooSmall`                      | The loaded object is less than the minimum size allowed.                                                                                                                                                                                         |
| 400  | `EntityTooLarge`                      | The loaded object is larger than the maximum allowed.                                                                                                                                                                                            |
| 400  | `ExpiredToken`                        | The provided token has expired.                                                                                                                                                                                                                  |
| 400  | `IncompleteBody`                      | The size of the sent data is smaller than indicated in the header `Content-Length`.                                                                                                                                                              |
| 400  | `IncorrectNumberOfFilesInPostRequest` | The POST method requires the transfer of exactly one file.                                                                                                                                                                                       |
| 400  | `InlineDataTooLarge`                  | The request data exceeded the maximum size allowed.                                                                                                                                                                                              |
| 400  | `InvalidDigest`                       | The hash passed in the Content-MD5 header is not correct.                                                                                                                                                                                        |
| 400  | `InvalidArgument`                     | Invalid argument.                                                                                                                                                                                                                                |
| 400  | `InvalidBucketName`                   | Invalid bucket name.                                                                                                                                                                                                                             |
| 400  | `InvalidPart`                         | One or more parts of the composite load were not found. Check the list is correct. Possibly missing parts were not loaded.                                                                                                                       |
| 400  | `InvalidPartOrder`                    | The list of parts for a composite load is incorrect. Parts must be sorted in ascending order.                                                                                                                                                    |
| 400  | `InvalidRequest`                      | Use AWS4-HMAC-SHA256.                                                                                                                                                                                                                            |
| 400  | `InvalidRequest`                      | <p>An attempt was made to exceed the maximum bucket size.<br><br>Error description in response: "You have attempted to exceed the max size configured for the bucket."</p>                                                                       |
| 400  | `InvalidStorageClass`                 | Invalid storage class.                                                                                                                                                                                                                           |
| 400  | `InvalidTargetBucketForLogging`       | The bucket does not exist, or you are not the bucket owner, or the log delivery group does not have sufficient rights.                                                                                                                           |
| 400  | `InvalidToken`                        | The token is incorrectly formed or incorrect for another reason.                                                                                                                                                                                 |
| 400  | `InvalidURI`                          | It was not possible to parse the passed URI.                                                                                                                                                                                                     |
| 400  | `KeyTooLongError`                     | The key is too long.                                                                                                                                                                                                                             |
| 400  | `MalformedACLError`                   | The provided XML document is malformed or does not conform to the schema.                                                                                                                                                                        |
| 400  | `MalformedPOSTRequest`                | The request body does not match the format `multipart/form-data`.                                                                                                                                                                                |
| 400  | `MalformedXML`                        | The provided XML document is malformed or does not conform to the schema.                                                                                                                                                                        |
| 400  | `MaxMessageLengthExceeded`            | The allowed request length was exceeded.                                                                                                                                                                                                         |
| 400  | `MaxPostPreDataLengthExceededError`   | The HTTP message header has exceeded the allowed size.                                                                                                                                                                                           |
| 400  | `MetadataTooLarge`                    | The metadata headers are out of size.                                                                                                                                                                                                            |
| 400  | `MissingRequestBodyError`             | <p>Empty request body.<br><br>Occurs when an empty XML document is sent.</p>                                                                                                                                                                     |
| 400  | `MissingSecurityHeader`               | Required title is missing.                                                                                                                                                                                                                       |
| 400  | `NoLoggingStatusForKey`               | Key logging status is missing.                                                                                                                                                                                                                   |
| 400  | `RequestIsNotMultiPartContent`        | The request must contain data of type `multipart/form-data`.                                                                                                                                                                                     |
| 400  | `RequestTimeout`                      | Read / write timeout.                                                                                                                                                                                                                            |
| 400  | `TokenRefreshRequired`                | Refresh the token.                                                                                                                                                                                                                               |
| 400  | `TooManyBuckets`                      | Exceeding the limit on the number of buckets.                                                                                                                                                                                                    |
| 400  | `UnexpectedContent`                   | There should be no content in the request.                                                                                                                                                                                                       |
| 400  | `UnresolvableGrantByEmailAddress`     | Unregistered e-mail.                                                                                                                                                                                                                             |
| 400  | `UserKeyMustBeSpecified`              | The request must contain the title specified in the error description.                                                                                                                                                                           |
| 403  | `AccessDenied`                        | Access is denied.                                                                                                                                                                                                                                |
| 403  | `AccountProblem`                      | <p>Account issue preventing operations from completing successfully.<br><br>Contact ColdStack support.</p>                                                                                                                                       |
| 403  | `InvalidAccessKeyId`                  | Unknown key.                                                                                                                                                                                                                                     |
| 403  | `InvalidObjectState`                  | The request could not be completed for the current state of the object.                                                                                                                                                                          |
| 403  | `InvalidPayer`                        | Access to the object is blocked.                                                                                                                                                                                                                 |
| 403  | `InvalidSecurity`                     | The provided secret keys are not valid.                                                                                                                                                                                                          |
| 403  | `NotSignedUp`                         | The account is not allowed to use ColdStack.                                                                                                                                                                                                     |
| 403  | `RequestTimeTooSkewed`                | The difference between the time the request was sent and the time on the server is too big.                                                                                                                                                      |
| 403  | `SignatureDoesNotMatch`               | The supplied request signature does not match the computed ColdStack.                                                                                                                                                                            |
| 404  | `NoSuchBucket`                        | The specified bucket does not exist.                                                                                                                                                                                                             |
| 404  | `NoSuchKey`                           | The specified key does not exist.                                                                                                                                                                                                                |
| 404  | `NoSuchUpload`                        | <p>The specified composite load does not exist.<br><br>The error occurs in the following cases:<br>- An invalid download ID was specified.<br>- Download interrupted.<br>- Loading is complete.</p>                                              |
| 405  | `MethodNotAllowed`                    | The HTTP method is not applicable to the specified resource.                                                                                                                                                                                     |
| 409  | `KeyAlreadyExists`                    | The specified key already exists. This error can occur when trying to change object's key to an already used one (see [RenameObject](https://docs.coldstack.io/http-api-compatible-with-amazon-s3/api-reference/object/renameobject) operation). |
| 409  | `BucketAlreadyExists`                 | A bucket with the same name already exists, please select a different name.                                                                                                                                                                      |
| 409  | `BucketNotEmpty`                      | The bucket you are deleting is not empty.                                                                                                                                                                                                        |
| 409  | `InvalidBucketState`                  | The request could not be completed for the current state of the bucket.                                                                                                                                                                          |
| 409  | `OperationAborted`                    | Conflicting conditional operations.                                                                                                                                                                                                              |
| 411  | `MissingContentLength`                | Add `Content-Length`to headers.                                                                                                                                                                                                                  |
| 412  | `Precondition Failed`                 | One of the conditions specified in the request has not been met.                                                                                                                                                                                 |
| 416  | `InvalidRange`                        | Invalid header range `Range`.                                                                                                                                                                                                                    |
| 429  | `TooManyRequests`                     | Too many requests to ColdStack. Reduce the frequency of calls.                                                                                                                                                                                   |
| 500  | `InternalError`                       | Internal ColdStack error. Reissue your request.                                                                                                                                                                                                  |
| 501  | `NotImplemented`                      | The passed header is not processed by ColdStack.                                                                                                                                                                                                 |
| 503  | `ServiceUnavailable`                  | <p>ColdStack is not available.<br>Reduce the frequency of your requests.</p>                                                                                                                                                                     |
| 503  | `SlowDown`                            | Reduce the frequency of your requests.                                                                                                                                                                                                           |
