Error Response Headers
SCSP error responses have headers detailing the error code, response code (token), and error description. The response for any request with an error code 400 or greater includes three special headers: castor-system-error-code
, castor-system-error-token
, and castor-system-error-text
. These headers replace the legacy header x-castor-meta-error-message
, which is deprecated. (v9.1)
Tip
A failure response may contain a series of cascading errors. Focus on the final error in the series, which is likely to be the issue needing to be addressed:
< HTTP/1.1 412 Precondition Failed
< Castor-System-Error-Token: SecurityRealmFailure
< Castor-System-Error-Text: Failed to load context 'some-domain.example.com/nosuchbucket'.
< Castor-System-Error-Code: 404
< Castor-System-Error-Token: RequiresContext2
< Castor-System-Error-Text: Cannot find required domain or bucket.
< Castor-System-Error-Code: 412
< Content-Length: 130
< Content-Type: text/html
...
A text value of "{0}" or "{1}" indicates a variable to be populated by Swarm when the value is generated.
A code value of "0" indicates the response code is not static, and is populated by Swarm when the error is generated.
Code | Token | Text |
---|---|---|
0 | CloseException | {0} |
0 | CloseException2 | {0} |
0 | CloseException3 | {0} |
500 | CloseFailure | {0} |
500 | CloseFailure2 | {0} |
500 | CloseFailure3 | {0} |
500 | CloseFailure4 | {0} |
507 | ClusterOutOfObjects | Not enough licensed objects in the cluster for request. |
507 | ClusterOutOfSpace | Not enough licensed space in the cluster for request. |
507 | ClusterOutOfSpace3 | Not enough space in cluster. |
507 | ClusterOutOfSpace4 | Not enough space in cluster. |
0 | CompletionErrorNonRequest | {0} |
0 | CompletionErrorRequest | {0} |
500 | CompletionErrorUnknown | Unknown completion error. |
412 | ConditionalIfMatch | If-Match condition not met. |
412 | ConditionalIfMatch2 | If-Match condition not met. |
304 | ConditionalIfModified | If-Modified-Since condition not met. |
304 | ConditionalIfNoneMatch | If-None-Match condition not met on GET or HEAD. |
412 | ConditionalIfNoneMatch2 | If-None-Match condition not met. |
412 | ConditionalIfUnmodified | If-Unmodified-Since condition not met. |
412 | ConditionalMatchNotFound | A matching object was not found on If-Match request. |
412 | ConditionalNoneMatchFound | A matching object was found on If-None-Match request. |
400 | CopyMD5Mismatch | The Content-MD5 provided on the COPY request does not match the value in the manifest. |
400 | CopyMD5Mismatch2 | The Content-MD5 provided on the COPY request does not match the value in the manifest. |
400 | DigesterForbiddenArgs | Content Integrity: 'hashtype' and 'newhashtype' queryArgs cannot be used together. |
400 | DigesterInvalidHashtype | Content Integrity: unsupported hash type. |
400 | DigesterMismatch | Persisted {0} did not match request. |
400 | DigesterMismatch2 | {0} did not match computed digest. |
400 | DigesterMismatch3 | Local Content-MD5 did not match remote Content-MD5. |
400 | DigesterMismatch4 | {0} did not match computed digest. |
400 | DigesterMissingHeader | Expect {0} trailing header not supplied. |
500 | DigesterMissingRemote | Remote replica did not contain a Content-MD5. |
400 | DigesterRequiresHash | Content Integrity - 'hash' query arg required with 'hashtype' on GET or COPY. |
400 | DigesterRequiresHashtype | Content Integrity - 'hashtype' query arg required on request. |
412 | DigesterSealMismatch | Content Integrity - seal did not validate. |
503 | ECSegmentClose | Premature segment close on read. Please retry. |
406 | EncodeInvalidCE | Content-encoding not acceptable. |
405 | EncodeInvalidMethod | APPEND not allowed for content-encoded objects. |
406 | EncodeRequiresCE | Content-encoding not found on request or in 'decoderSettings' setting. |
500 | EnvelopedHeadersTimeout | Content-Type: %s used, but enveloped headers were not sent before timeout. |
400 | FeedSendHeaderMisuse1 | %s header should not be provided on feed SEND request. |
400 | FeedSendHeaderMisuse2 | %s header should not be provided on feed SEND request. |
400 | FeedSendHeaderMisuse3 | %s header should not be provided on feed SEND request. |
400 | FeedSendIllegalFeedId | feedid query argument must refer to the id of a feed |
400 | FeedSendIllegalFeedType | feedtype query argument must refer to a feed type. |
400 | FeedSendIllegalTimeout | timeout query argument must be a positive number. |
400 | ForbiddenAction | 'Action' query arg is not allowed on existing object request. |
400 | ForbiddenAliasRename | An alias stream cannot be renamed. |
400 | ForbiddenAliasUUID | Only the COPY operation supports renaming using aliasuuid. |
400 | ForbiddenConditional | Conditional headers other than If-None-Match:* on a named request not allowed in a POST. |
417 | ForbiddenContentMD5 | Expect:Content-MD5/gencontentmd5 is not supported for APPEND. |
400 | ForbiddenContext | Cannot write duplicate context. |
409 | ForbiddenContextName | POST will only create new context objects. Context already exists. |
409 | ForbiddenContextName2 | POST will only create new context objects. Context already exists. |
412 | ForbiddenDomainName | Cannot rename domain to existing domain name. |
400 | ForbiddenEtag | Etag query argument not appropriate on write requests. |
501 | ForbiddenFeature | You must configure Erasure Coding to obtain this functionality. |
501 | ForbiddenFeature2 | You must configure Erasure Coding to obtain this functionality. |
501 | ForbiddenFeature3 | Chunked APPEND not supported in S3 mode. |
400 | ForbiddenGenID | IsGenId query arg must be used with GET or HEAD methods only. |
400 | ForbiddenIndexWaitValue | Forbidden value '{0}' with index query argument |
400 | ForbiddenManifest | {0} not appropriate on this request. |
400 | ForbiddenManifestEC | Cannot provide erasure coding query args for a manifest write. |
400 | ForbiddenManifestHeader | '{0}' header only allowed on a POST. |
400 | ForbiddenManifestHeader2 | '{0}' header not allowed on a context request. |
405 | ForbiddenMethod | Allow header forbids this method on this object. |
409 | ForbiddenMutable | Operation on mutable object must be by name or alias. |
409 | ForbiddenMutable2 | Can not PUT an immutable object. |
409 | ForbiddenMutable3 | Can not PUT an immutable object. |
409 | ForbiddenMutable4 | Can not COPY an immutable object. |
409 | ForbiddenMutable5 | Can not APPEND an immutable object. |
409 | ForbiddenMutable6 | Can not {0} an immutable object. |
400 | ForbiddenPolicyHeader | Policy headers are only allowed on domains and buckets. |
400 | ForbiddenPutCreate | 'Putcreate' query argument not allowed on context requests. |
412 | ForbiddenRename | Cannot rename due to existing object. |
400 | ForbiddenSegmentEC | Cannot EC an existing segment. |
400 | ForbiddenSegmentSize | Cannot specify 'segmentsize' on an existing EC object. |
409 | ForbiddenSegmented | Cannot segment an EC object. |
409 | ForbiddenSegmented2 | Cannot segment an EC object. |
400 | ForbiddenSegmentedEC | Cannot specify segmented=yes, and provide erasure coding query args. |
400 | ForbiddenSpec | Cannot specify 'erasurecoded' on an existing object for given method. |
400 | ForbiddenSpec2 | Cannot specify 'encoding' on an existing object for given method. |
400 | ForbiddenSpec3 | Cannot specify 'segmentwidth' on an existing object for given method. |
400 | ForbiddenSpec4 | Cannot specify 'segmentsize' on an existing object for given method. |
400 | ForbiddenSpec5 | Cannot specify 'lifepoint k:p' on an existing object for given method. |
400 | ForbiddenStreamHeader | Duplicate header values detected for {0}. |
403 | ForbiddenUUID | UUID forbidden on POST. |
403 | ForbiddenUUIDName | UUID/Name forbidden on RETRIEVE. |
400 | ForbiddenVersioning | 'Version' query argument may not be used on a context request. |
400 | ForbiddenVersioning2 | 'Version' query argument may not be used on an immutable request. |
400 | ForbiddenVersioning3 | DEPRECATED: 'Version' query argument not appropriate in current state. |
409 | GenRequiresEncoding | GEN can only be performed on segments, by administrative request. |
412 | IfNoneMatchFail | Named stream already exists with If-None-Match: * specified. |
503 | InsufficientMemory | Insufficient physical memory |
503 | InsufficientMemory2 | Service unavailable, busy |
507 | InternodeInsufficientResources | Could not find sufficient resources. |
507 | InternodeInvalidDistribution | Did not balance across the correct number of subclusters. |
507 | InternodeInvalidDistribution2 | Did not balance evenly across subclusters. |
507 | InternodeInvalidDistribution3 | Did not balance evenly across nodes. |
507 | InternodeInvalidDistribution4 | Did not balance evenly across subclusters. |
503 | InternodeInvalidState | Failed to detect valid subcluster bids. Try again. |
507 | InternodeRequiresNodes | No remote nodes are available to take objects of specified size. |
507 | InternodeRequiresNodes2 | Not enough remote nodes are available to take objects of specified size. |
507 | InternodeRequiresNodes3 | Not enough subclusters are available to take objects of specified size. |
507 | InternodeRequiresNodes4 | No nodes found in bid auction. |
503 | InternodeRequiresNodes5 | Not enough nodes are available to take this object. |
507 | InternodeRequiresSubclusters | Cannot apply subcluster protection when the segment count is not greater than the required segments per subcluster. |
500 | InternodeUnexpectedCount | Found an unexpected number of nodes, fewer than needed. |
507 | InternodeUnexpectedCount2 | Unexpected number of volumes. |
400 | InvalidAliasUUID | 'Aliasuuid' must be a UUID. |
400 | InvalidAuthorization | CAStor-authorization header error. |
410 | InvalidBasisStream | Basis object has been deleted. |
503 | InvalidBirthdate | Temporary alias conflict after upgrade: try again. |
400 | InvalidBucketName | Illegal character in bucket name. |
400 | InvalidCID | 'Cid' queryArg must be valid UUID. |
400 | InvalidContentLength | Content-Length must be zero for COPY request. |
400 | InvalidContentLength1 | WritePattern query argument requires a message body with contentLength greater than 0. |
400 | InvalidContentLength2 | WritePattern pattern must not be larger than value of scsp.writePatternMax. |
400 | InvalidContentMD5 | Content-MD5 not allowed on multipart write initiate request. |
400 | InvalidContentMD52 | Content-MD5 value can not be blank. |
400 | InvalidContentMD53 | Content-MD5 value was not not a valid base64 md5 hash. |
400 | InvalidCount | 'Count' query arg must be > 0 and <= scsp.maxreplicas. |
400 | InvalidCount2 | 'Count' query arg must be an integer > 0 and <= scsp.maxreplicas. |
400 | InvalidDecorates | {0} header may not be added to contexts. |
400 | InvalidDecorates2 | {0} header must be a single UUID. |
400 | InvalidDecorates3 | {0} header must be a valid UUID. |
400 | InvalidDecorates4 | {0} header value must refer to an ETag. |
400 | InvalidDomainName | Illegal character in domain name. |
400 | InvalidDomainSpecified | Domain may not change on a recreatecid request. |
400 | InvalidDomainsDomain | Request must not provide both 'domains' and 'domain' query arguments. |
400 | InvalidECCombination | Cannot specify no encoding, and provide erasure coding query args. |
400 | InvalidECEncoding | Invalid EC encoding. |
400 | InvalidECQueryArgs | Error parsing EC queryArgs. |
400 | InvalidEntityLength | Expected integer for 'Entity-Length' header value. |
400 | InvalidEntityLength2 | Entity length header does must match Content-Length header. |
417 | InvalidExpectContentMD5 | Expect: Content-MD5/gencontentmd5 not allowed on multipart write initiate request. |
400 | InvalidMethod | A PATCH request is only valid on a multipart upload initiate. |
400 | InvalidMethodForListing | A listing request with the 'format' query arg must be a GET not {0}. |
400 | InvalidModifiedSince |
© DataCore Software Corporation. · https://www.datacore.com · All rights reserved.