HTTP status codes with the REST API

Content Platform Tenant Management Help

Version
9.7.x
File Size
4269 KB
Audience
anonymous
Part Number
MK-95HCPH002-19
Code Meaning Methods Description
200 OK

DELETE

GET

HEAD

POST

HCP successfully processed a request that does any of:

  • Retrieve an object, system metadata, an annotation, information about annotations, an ACL, or a directory
  • Delete an object, annotation, ACL, symbolic link, or directory
  • Set a metadata value

Note: For a GET request for an object or version, if the number of bytes returned does not equal the value of the Content-Length response header, try the request again later.

201 Created PUT HCP successfully added an object, version, annotation, ACL, or directory to the namespace, copied an object, or replaced an annotation or ACL for an object.
204 No Content

GET or HEAD of an annotation or a version

GET of information about annotations

DELETE of an annotation

One of:

  • For an annotation, the specified object does not have the requested annotation.
  • For information about annotations, the object or version does not have any annotations.
206 Partial Content GET with a Range header HCP successfully retrieved the data in the byte range specified in the request.
304 Not Modified

GET, PUT, or HEAD with If-Modified-Since

GET or HEAD with If-None-Match

PUT with X-HCP-Copy-Source-If-Modified-Since

PUT with X-HCP-Copy-Source-If-None-Match

One of:

  • The request specified an If-Modified-Since header, and the object change time is at or before the time specified in the header.
  • The request specified an If-None-Match header, and the ETag of the requested object or version matches the value in the header.
  • A request to copy an object specified X-HCP-Copy-Source-If-Modified-Since header, and the source object change time is at or before the time specified in the header.
  • A request to copy an object specified an X-HCP-Copy-Source-If-None-Match header, and the ETag of the source object matches the value in the header.
400 Bad Request All

The request was not valid. These are some, but not all, of the possible reasons:

  • The URL in the request is not well-formed.
  • The request contains an unsupported query parameter or an invalid value for a query parameter.
  • A GET request has both a type=whole-object query parameter and a Range request header.
  • A PUT or POST request has a Content-Encoding header that specifies gzip, but the content is not in gzip-compressed format.
  • The X-HCP-CopySource header in a PUT request to copy an object identifies a symbolic link to an object.
  • A PUT request has a type=whole-object query parameter but does not have an X-HCP-Size header or the X-HCP-Size header value is greater than the content length.
  • HCP has custom metadata XML checking enabled, and a PUT request includes an annotation that is not well-formed XML.
  • For a PUT request that is trying to store an ACL:
    • The ACL includes invalid entries or values or is not well-formed XM L or JSON.
    • ACLs are not enabled for the namespace.
    • The ACL contains more than one thousand ACEs.
    • The ACL specifies an AD user or group, but the namespace does not support AD authentication.
  • The request is trying to change the owner of an object to an AD user, but the namespace does not support AD authentication.
  • The request is trying to change the retention setting from a retention class to an explicit setting, such as a datetime value.
  • The request is trying to change the retention setting and the hold setting at the same time.
  • The specified object has ten annotations and the request is trying to add an annotation.
  • The request is trying to change the retention setting for an object on hold.
  • The request is trying to change the shred setting from true to false.
  • A request other than GET, HEAD, or PUT for an object or version includes a conditional header such as If-Match.
  • The request includes an If-Match or If-None-Match header and the object does not yet have an ETag.
  • A request to copy an object includes an X-HCP-CopySource-If-Match or X-HCP-CopySource-If-None-Match header and does not include a ForceEtag=true query parameter, and the source object does not yet have an ETag.
  • A DELETE request includes a conditional header.

If more information about the error is available, the response headers include the HCP-specific X-HCP-ErrorMessage header.

401 Unauthorized GET for namespace information The user does not have access to the namespace for which information is being requested.
403 Forbidden All

The requested operation was not allowed. These are some, but not all, of the possible reasons:

  • The Authorization header or hcp-ns-auth cookie specifies invalid credentials.
  • The namespace requires authentication, and the request does not include an Authorization header or hcp-ns-auth cookie.
  • The user doesn’t have permission to perform the requested operation.
  • The namespace does not exist.
  • The data access port for HTTP or HTTPS, as applicable, is disabled.
  • For a DELETE request to delete an object, the object is under retention.
  • For a DELETE request to delete a directory, the directory is not empty.
  • For a DELETE request to delete an annotation, the object is under retention, and the namespace does not allow deleting annotations for objects under retention.
  • For a PUT request to add a version of an existing object, the object is under retention.
  • For a PUT request to add or replace an annotation for an object that is under retention, the namespace does not allow the operation for objects under retention.

If more information about the error is available, the response headers include the HCP-specific X-HCP-ErrorMessage header.

404 Not Found

DELETE

GET

HEAD

POST

PUT of an annotation or ACL

GET of information about annotations

One of:

  • For all methods, HCP could not find the specified object, version, or directory.
  • Any component of the URL except for the last component in the path is a symbolic link to a directory.
  • For a GET request for a version or a PUT request to copy a version, the specified version is the current version of a deleted object.
  • For a GET request to retrieve object or version data and an annotation concurrently, the requested object does not have an annotation with the specified name.
406 Not Acceptable GET

One of:

  • The request has an Accept-Encoding header that does not include gzip or *.
  • For a GET request for an ACL, the request has a Content-Type header with a value other than application/xml or application/json.
409 Conflict

DELETE

PUT

One of:

  • For a DELETE request, HCP could not delete or purge the specified object or delete the directory, annotation, or ACL because it is currently being written to the namespace.
  • For a PUT request, HCP could not add the object or directory because it already exists and versioning is not enabled.
  • For a PUT request to store a version of an existing object, HCP could not add a new version of the object because another version is currently being added.
  • For a PUT request to store an annotation, the object for which the annotation is being stored was ingested using CIFS or NFS, and the lazy close period for the object has not expired.
  • For a PUT request that includes a conditional header, HCP is processing another PUT request for the object.
  • A large number of clients are trying to store custom metadata or ACLs for multiple objects at the same time.
410 Gone

GET

PUT with X-HCP-CopySource

Possible reasons include:

  • For a GET request, the object is in the process of being deleted.
  • For a GET request, the object exists, but the HCP system does not have the object data. Retry the request, targeting a different system in the replication topology.
  • For a PUT request to copy an object or version, the source object is in the process of being deleted.
  • For a PUT request to copy an object or version, the source object exists, but the HCP system does not have the source object data. Retry the request, targeting a different system in the replication topology.
412 Precondition Failed

GET, HEAD, or PUT with If-Match or If-Unmodified-Since header

PUT with

If-None-Match,

X-HCP-Copy-Source-If-Match, or

X-HCP-Copy-Source-If-Unmodified-Since header

One of:

  • The request specified an If-Match header, and the ETag of the requested object or version does not match the value in the header.
  • A PUT request specified an If-None-Match header, and the ETag of the requested object or version matches the value in the header.
  • The request specified an If-Unmodified-Since header, and the object change time is after the time specified in the header.
413 File Too Large PUT

One of:

  • Not enough space is available to store the object. Try the request again after objects or versions are deleted from the namespace or the namespace capacity is increased.
  • The request is trying to save an object that is larger than two TB. HCP cannot store objects larger than two TB.
  • The request is trying to store a default annotation that is larger than one GB or any other annotation that is larger than one MB.
414 Request URI Too Large All The portion of the URL following rest is longer than 4,095 bytes.
415 Unsupported Media Type POST

One of:

  • The request has a Content-Encoding header with a value other than gzip.
  • For a PUT request for an ACL, the request has a Content-Type header with a value other than application/xml or application/json.
416 Requested Range Not Satisfiable GET with a Range header

One of:

  • The specified start position is greater than the size of the requested data.
  • The size of the specified range is zero.
500 Internal Server Error All

An internal error occurred. Try the request again, gradually increasing the delay between each successive attempt.

If this error happens repeatedly, please contact your tenant administrator.

503 Service Unavailable All

One of:

  • The request includes a Content-Length header with a value larger than the length of the message body
  • For a GET request to retrieve object data or an annotation, the request specifies the nowait query parameter, and HCP determined that the request would have taken a significant amount of time to return the data.
  • HCP is temporarily unable to handle the request, probably due to system overload, maintenance, or upgrade.

In the last two cases, try the request again, gradually increasing the delay between each successive attempt. If the error persists, please contact your tenant administrator.

If more information about the error is available, the response headers include the HCP-specific X-HCP-ErrorMessage header.