HTTP Response Codes
Following are HTTP response codes that may be received from Swarm, with notes about any Swarm-specific meaning.
See RFC 7231 section 6 of the HTTP/1.1 specifications for information about response status codes.
Response | Methods | Notes | |
---|---|---|---|
100 | POST, PUT, APPEND | See https://perifery.atlassian.net/wiki/spaces/public/pages/2443821645, WRITE for Large Files (Expect: 100-continue). See https://perifery.atlassian.net/wiki/spaces/public/pages/2443821350, Issues with 100-Continue Header | |
101 | - | Informs the client about the server switching the protocols to the one specified in the Upgrade message header field during the current connection. | |
200 | GET, HEAD, DELETE | Standard response for successful requests. For EC, indicates Swarm found enough segments to recreate the object, which is a prerequisite for success. | |
201 | POST, PUT, COPY, APPEND | The success response for a POST or PUT request. | |
202 | POST | Request accepted (such as for a multipart completion), but not processed. | |
203 | - | Returned meta information was not the definitive set from the origin server. | |
204 | - | Request succeeded without requiring the return of an entity-body. | |
205 | - | Request succeeded but requires resetting of the document view that caused the request. | |
206 Partial Content | GET | Successful response to a GET that includes one or more Range headers, returning the specific range data. | |
207 | - | ||
300 | - | Requested resource has multiple choices at different locations. | |
301 | All | Resource permanently moved to a different URL Requests the client to resend the current request to the location supplied in the response headers and to direct all future requests to that new node until further notice. The | |
302 | - | Requested resource was found under a different URL but the client should continue to use the original URL. | |
303 | - | Requested response is at a different URL and can be accessed only through a GET command. | |
304 | GET, HEAD, PUT, APPEND, COPY | If-Modified-Since condition not met. Requested object was not modified since the last request. Requested object was not modified since the time specified in the If-Modified-Since header. The response is returned without any message-body. If-None-Match condition not met on GET or HEAD. | |
305 | - | Requested resource should be accessed through the proxy specified in the location field. | |
307 | All | Resource is temporarily moved to a different URL. The client should resend the current request to the location supplied in the response headers, but to continue using the original PAN for the next request until further notice. See https://perifery.atlassian.net/wiki/spaces/public/pages/2443820846, use Workarounds for Redirects. | |
400 | All | ||
401 Unauthorized | All | Occurs as the normal initial response of HTTP authentication for a domain. Administrative request lacks an Authorization header with suitable administrative credentials. The response includes a WWW-Authenticate challenge containing the administrative domain named Castor administrator and other required items. | |
403 | Varies | Unsupported method was used. Alias objects only support POST, DELETE, GET, and HEAD. Domain objects only support GET, HEAD, COPY, PUT, and APPEND. | |
404 | GET, HEAD, APPEND, PUT, COPY, DELETE | Indicates that the content cannot be located in this cluster. Common causes include these: Object deletion Request errors (such as the wrong bucket name) Network failure Node(s) down for maintenance Timeouts due to a heavily loaded or extremely active cluster Rebalancing due to new drive capacity in the cluster Requesting aliased objects without using the etag flag, because the overlay index does not keep primary UUIDs for aliased objects. Appending to an immutable object or a UUID that does not exist. Multipart range index out of range. Attempting to read a version not associated with this alias. | |
- | Method specified in the Request-Line was not allowed for the specified resource. APPEND not allowed for content-encoded objects. Allow header forbids this method on this object. | ||
- | Resource requested generates response entities that has content characteristics not specified in the accept headers. Content-encoding not acceptable, or not found on request or in 'decoderSettings' setting. | ||
407 | - | Request requires the authentication with the proxy. | |
408 | - | Client fails to send a request in the time allowed by the server. | |
PUT, POST, APPEND, COPY, DELETE | Request was unsuccessful due to a conflict in the state of the resource. Includes the following conditions: Attempting to create a domain or bucket object which already exists. Renaming a domain or bucket to a name which already exists. Attempting to update an immutable object. Attempting to update an alias object in a domain that does not exist. Rapid updates of an object, resulting in the error "Later version already exists." Persisted Content-MD5 did not match value on request. Basis object is no longer erasure-coded. Encoding has changed on the basis object since the initiate. Initialized object must have matching uploadID, which might be updated since the initiate. | ||
GET, HEAD, DELETE | Delete marker. Erasure-coded object: too few segments found to service request, checksum failure attempting to generate an EC segment, or unable to read sufficient objects to complete request. | ||
- | Server cannot accept the request without a valid Content-Length header field. Content-Length must be provided for all non-EC object requests. Content-Length must be provided and must be zero for COPY request. | ||
412 | All | Precondition specified in the Request-Header field returns false. For erasure coding, indicates Swarm cannot recreate the object, listing the missing segments in the body of the response. For named objects, indicates that the named object already exists or that the bucket or domain cannot be found. For unnamed objects, indicates Swarm did not write the object because the domain does not exist, if cluster.enforceTenancy is set to true. See https://perifery.atlassian.net/wiki/spaces/public/pages/2443821691. For replication, indicates that the cluster cannot locate at least two nodes to initially store the replicas. Check the Replica-Count header to verify Swarm creates the correct number of replicas. When Swarm initiates a replication request to a PAN and the replication or initial write fails, Swarm fails both procedures and generates a 412. This guarantees that two copies of the object are saved on separate nodes in the cluster before returning a 201 response. | |
- | Server is not ready to receive the large file and has closed the connection. | ||
- | Request unsuccessful because the URL specified is longer than the server can process. | ||
- | Request unsuccessful because the entity of the request is in a format not supported by the requested resource. | ||
416 | GET | GET request includes invalid Range headers because the request is out of bounds of the data. Invalid range header, cannot parse. x-castor-copy-source-range was not satisfiable. Cannot start past the end of the content, and start must be less than the end. | |
- | Expectation given in the Expect request-header was not fulfilled by the server. gencontentmd5 query argument or Expect: Content-MD5 header (deprecated) is not supported for APPEND. gencontentmd5 query argument or Expect: Content-MD5 header (deprecated) is not allowed on multipart write initiate request. List operations do not support any 'Expect' headers. | ||
All | Critical error in Swarm. Check logs for more information and contact DataCore Support if necessary. TipA 500 error is almost always accompanied by a non-500 ‘child’ error with more detail, which is returned in the error headers. See https://perifery.atlassian.net/wiki/spaces/public/pages/2443821260. | ||
- | Requested method is unsupported in Swarm. Only the methods listed in the Allow header currently work in Swarm. Erasure coding is not enabled in the configuration. List operations unavailable because Elasticsearch is not configured or licensed. List operations require a Search Feed, but none are currently available. Destination server version is invalid or does not support remote replication. Destination server is not recognized, or destination server name is not provided. Destination cluster.name is not set, or differs from expected. | ||
- | Server received an invalid response from the upstream server while attempting to fulfill the request. Cannot find a source for RETRIEVE operation. Castor-System-Cluster header has an invalid cluster name. | ||
All | Processing was interrupted, so the client should attempt again. Common causes include the following:
| ||
- | Upstream server failed to send a request in the time allowed by the server. Cannot connect to destination. | ||
All | Indicates a request was received with an HTTP version other than HTTP/1.1. Swarm only supports HTTP/1.1. | ||
507 | PUT, POST, APPEND, COPY | Request cannot be completed because of space limitations or licensing restrictions/errors. |
© DataCore Software Corporation. · https://www.datacore.com · All rights reserved.