Amazon Simple Storage Service
API Reference (API Version 2006-03-01)

Error Responses

This section provides reference information about Amazon S3 errors.

Note

SOAP support over HTTP is deprecated, but it is still available over HTTPS. New Amazon S3 features will not be supported for SOAP. We recommend that you use either the REST API or the AWS SDKs.

REST Error Responses

When an error occurs, the header information contains the following:

  • Content-Type: application/xml

  • An appropriate 3xx, 4xx, or 5xx HTTP status code

The body or the response also contains information about the error. The following sample error response shows the structure of response elements common to all REST error responses.

<?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>

The following table explains the REST error response elements.

Name Description
Code

The error code is a string that uniquely identifies an error condition. It is meant to be read and understood by programs that detect and handle errors by type. For more information, see List of Error Codes.

Type: String

Ancestor: Error

Error

Container for all error elements.

Type: Container

Ancestor: None

Message

The error message contains a generic description of the error condition in English. It is intended for a human audience. Simple programs display the message directly to the end user if they encounter an error condition they don't know how or don't care to handle. Sophisticated programs with more exhaustive error handling and proper internationalization are more likely to ignore the error message.

Type: String

Ancestor: Error

RequestId

ID of the request associated with the error.

Type: String

Ancestor: Error

Resource

The bucket or object that is involved in the error.

Type: String

Ancestor: Error

Many error responses contain additional structured data meant to be read and understood by a developer diagnosing programming errors. For example, if you send a Content-MD5 header with a REST PUT request that doesn't match the digest calculated on the server, you receive a BadDigest error. The error response also includes as detail elements the digest we calculated, and the digest you told us to expect. During development, you can use this information to diagnose the error. In production, a well-behaved program might include this information in its error log.

For information about general response elements, go to Error Responses.

List of Error Codes

The following table lists Amazon S3 error codes.

Error Code Description HTTP Status Code SOAP Fault Code Prefix
AccessDenied Access Denied 403 Forbidden Client
AccountProblem There is a problem with your AWS account that prevents the operation from completing successfully. Please contact AWS Support for further assistance, see Contact Us. 403 Forbidden Client
AllAccessDisabled All access to this Amazon S3 resource has been disabled. Please contact AWS Support for further assistance, see Contact Us. 403 Forbidden Client

AmbiguousGrantByEmailAddress

The email address you provided is associated with more than one account. 400 Bad Request Client

AuthorizationHeaderMalformed

The authorization header you provided is invalid. 400 Bad Request N/A
BadDigest The Content-MD5 you specified did not match what we received. 400 Bad Request Client
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 Client
BucketAlreadyOwnedByYou The bucket you tried to create already exists, and you own it. Amazon S3 returns this error in all AWS Regions except us-east-1 (N. Virginia). For legacy compatibility, if you re-create an existing bucket that you already own in us-east-1, Amazon S3 returns 200 OK and resets the bucket access control lists (ACLs).

409 Conflict (in all regions except us-east-1)

Client
BucketNotEmpty The bucket you tried to delete is not empty. 409 Conflict Client
CredentialsNotSupported This request does not support credentials. 400 Bad Request Client
CrossLocationLoggingProhibited Cross-location logging not allowed. Buckets in one geographic location cannot log information to a bucket in another location. 403 Forbidden Client
EntityTooSmall Your proposed upload is smaller than the minimum allowed object size. 400 Bad Request Client
EntityTooLarge Your proposed upload exceeds the maximum allowed object size. 400 Bad Request Client
ExpiredToken The provided token has expired. 400 Bad Request Client
IllegalVersioningConfigurationException Indicates that the versioning configuration specified in the request is invalid. 400 Bad Request Client
IncompleteBody You did not provide the number of bytes specified by the Content-Length HTTP header 400 Bad Request Client
IncorrectNumberOfFilesInPostRequest POST requires exactly one file upload per request. 400 Bad Request Client
InlineDataTooLarge Inline data exceeds the maximum allowed size. 400 Bad Request Client
InternalError We encountered an internal error. Please try again. 500 Internal Server Error Server
InvalidAccessKeyId The AWS access key ID you provided does not exist in our records. 403 Forbidden Client
InvalidAddressingHeader You must specify the Anonymous role. N/A Client
InvalidArgument Invalid Argument 400 Bad Request Client
InvalidBucketName The specified bucket is not valid. 400 Bad Request Client
InvalidBucketState The request is not valid with the current state of the bucket. 409 Conflict Client
InvalidDigest The Content-MD5 you specified is not valid. 400 Bad Request Client
InvalidEncryptionAlgorithmError The encryption request you specified is not valid. The valid value is AES256. 400 Bad Request Client
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 Client
InvalidObjectState The operation is not valid for the current state of the object. 403 Forbidden Client
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 Client
InvalidPartOrder The list of parts was not in ascending order. Parts list must be specified in order by part number. 400 Bad Request Client
InvalidPayer All access to this object has been disabled. Please contact AWS Support for further assistance, see Contact Us. 403 Forbidden Client
InvalidPolicyDocument The content of the form does not meet the conditions specified in the policy document. 400 Bad Request Client
InvalidRange The requested range cannot be satisfied. 416 Requested Range Not Satisfiable Client
InvalidRequest Please use AWS4-HMAC-SHA256. 400 Bad Request N/A
InvalidRequest SOAP requests must be made over an HTTPS connection. 400 Bad Request Client
InvalidRequest Amazon S3 Transfer Acceleration is not supported for buckets with non-DNS compliant names. 400 Bad Request N/A
InvalidRequest Amazon S3 Transfer Acceleration is not supported for buckets with periods (.) in their names. 400 Bad Request N/A
InvalidRequest Amazon S3 Transfer Accelerate endpoint only supports virtual style requests. 400 Bad Request N/A
InvalidRequest Amazon S3 Transfer Accelerate is not configured on this bucket. 400 Bad Request N/A
InvalidRequest Amazon S3 Transfer Accelerate is disabled on this bucket. 400 Bad Request N/A
InvalidRequest Amazon S3 Transfer Acceleration is not supported on this bucket. Contact AWS Support for more information. 400 Bad Request N/A
InvalidRequest Amazon S3 Transfer Acceleration cannot be enabled on this bucket. Contact AWS Support for more information. 400 Bad Request N/A
InvalidSecurity The provided security credentials are not valid. 403 Forbidden Client
InvalidSOAPRequest The SOAP request body is invalid. 400 Bad Request Client
InvalidStorageClass The storage class you specified is not valid. 400 Bad Request Client
InvalidTargetBucketForLogging The target bucket for logging does not exist, is not owned by you, or does not have the appropriate grants for the log-delivery group. 400 Bad Request Client
InvalidToken The provided token is malformed or otherwise invalid. 400 Bad Request Client
InvalidURI Couldn't parse the specified URI. 400 Bad Request Client
KeyTooLongError Your key is too long. 400 Bad Request Client
MalformedACLError The XML you provided was not well-formed or did not validate against our published schema. 400 Bad Request Client
MalformedPOSTRequest The body of your POST request is not well-formed multipart/form-data. 400 Bad Request Client
MalformedXML This happens when the user sends malformed XML (XML that doesn't conform to the published XSD) for the configuration. The error message is, "The XML you provided was not well-formed or did not validate against our published schema." 400 Bad Request Client
MaxMessageLengthExceeded Your request was too big. 400 Bad Request Client
MaxPostPreDataLengthExceededError Your POST request fields preceding the upload file were too large. 400 Bad Request Client
MetadataTooLarge Your metadata headers exceed the maximum allowed metadata size. 400 Bad Request Client
MethodNotAllowed The specified method is not allowed against this resource. 405 Method Not Allowed Client
MissingAttachment A SOAP attachment was expected, but none were found. N/A Client
MissingContentLength You must provide the Content-Length HTTP header. 411 Length Required Client
MissingRequestBodyError This happens when the user sends an empty XML document as a request. The error message is, "Request body is empty." 400 Bad Request Client
MissingSecurityElement The SOAP 1.1 request is missing a security element. 400 Bad Request Client
MissingSecurityHeader Your request is missing a required header. 400 Bad Request Client
NoLoggingStatusForKey There is no such thing as a logging status subresource for a key. 400 Bad Request Client
NoSuchBucket The specified bucket does not exist. 404 Not Found Client
NoSuchBucketPolicy The specified bucket does not have a bucket policy. 404 Not Found Client
NoSuchKey The specified key does not exist. 404 Not Found Client
NoSuchLifecycleConfiguration The lifecycle configuration does not exist. 404 Not Found Client
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 Client
NoSuchVersion Indicates that the version ID specified in the request does not match an existing version. 404 Not Found Client
NotImplemented A header you provided implies functionality that is not implemented. 501 Not Implemented Server
NotSignedUp Your account is not signed up for the Amazon S3 service. You must sign up before you can use Amazon S3. You can sign up at the following URL: https://aws.amazon.com/s3 403 Forbidden Client
OperationAborted A conflicting conditional operation is currently in progress against this resource. Try again. 409 Conflict Client
PermanentRedirect The bucket you are attempting to access must be addressed using the specified endpoint. Send all future requests to this endpoint. 301 Moved Permanently Client
PreconditionFailed At least one of the preconditions you specified did not hold. 412 Precondition Failed Client
Redirect Temporary redirect. 307 Moved Temporarily Client
RestoreAlreadyInProgress Object restore is already in progress. 409 Conflict Client
RequestIsNotMultiPartContent Bucket POST must be of the enclosure-type multipart/form-data. 400 Bad Request Client
RequestTimeout Your socket connection to the server was not read from or written to within the timeout period. 400 Bad Request Client
RequestTimeTooSkewed The difference between the request time and the server's time is too large. 403 Forbidden Client
RequestTorrentOfBucketError Requesting the torrent file of a bucket is not permitted. 400 Bad Request Client
ServerSideEncryptionConfigurationNotFoundError The server side encryption configuration was not found. 400 Bad Request Client
ServiceUnavailable Reduce your request rate. 503 Service Unavailable Server
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 Client
SlowDown Reduce your request rate. 503 Slow Down Server
TemporaryRedirect You are being redirected to the bucket while DNS updates. 307 Moved Temporarily Client
TokenRefreshRequired The provided token must be refreshed. 400 Bad Request Client
TooManyBuckets You have attempted to create more buckets than allowed. 400 Bad Request Client
UnexpectedContent This request does not support content. 400 Bad Request Client
UnresolvableGrantByEmailAddress The email address you provided does not match any account on record. 400 Bad Request Client
UserKeyMustBeSpecified The bucket POST must contain the specified field name. If it is specified, check the order of the fields. 400 Bad Request Client

List of SELECT Object Content Error Codes

The following table contains special errors that SELECT Object Content might return. For general information about Amazon S3 errors and a list of error codes, see Error Responses.

Error Code Description HTTP Status Code SOAP Fault Code Prefix
Busy The service is unavailable. Please retry. 503 Client
ColumnTooLong The length of a column in the result is greater than maxCharsPerColumn of 1 MB. 400 Client
EmptyRequestBody Request body cannot be empty. 400 Client
ExpressionTooLong The SQL expression is too long: The maximum byte-length for the SQL expression is 256 KB. 400 Client
IllegalSqlFunctionArgument Illegal argument was used in the SQL function. 400 Client
InternalError Encountered an internal error. 500 Client
InvalidColumnIndex Column index in the SQL expression is invalid. 400 Client
InvalidCompressionFormat The file is not in a supported compression format. Only GZIP and BZIP2 are supported. 400 Client
InvalidExpressionType The ExpressionType is invalid. Only SQL expressions are supported. 400 Client
InvalidFileHeaderInfo The FileHeaderInfo is invalid. Only NONE, USE, and IGNORE are supported. 400 Client
InvalidKeyPath Key path in the SQL expression is invalid. 400 Client
InvalidJsonType The JsonType is invalid. Only DOCUMENT and LINES are supported. 400 Client
InvalidQuoteFields The QuoteFields is invalid. Only ALWAYS and ASNEEDED are supported. 400 Client
InvalidRequestParameter The value of a parameter in SelectRequest element is invalid. Check the service API documentation and try again. 400 Client
OverMaxColumn The number of columns in the result is greater than the maximum allowable number of columns. 400 Client
OverMaxRecordSize The length of a record in the input or result is greater than maxCharsPerRecord of 1 MB. 400 Client
TruncatedInput Object decompression failed. Check that the object is properly compressed using the format specified in the request. 400 Client
UnauthorizedAccess You are not authorized to perform this operation 401 Client
CSVParsingError Encountered an error parsing the CSV file. Check the file and try again. 400 Client
JSONParsingError Encountered an error parsing the JSON file. Check the file and try again. 400 Client
ExternalEvalException The query cannot be evaluated. Check the file and try again. 400 Client
InvalidDataType The SQL expression contains an invalid data type. 400 Client
UnrecognizedFormatException Encountered an invalid record type. 400 Client
InvalidTextEncoding Invalid encoding type. Only UTF-8 encoding is supported. 400 Client
InvalidDataSource Invalid data source type. Only CSV, JSON, and Parquet are supported. 400 Client
InvalidTableAlias The SQL expression contains an invalid table alias. 400 Client
MalformedXML The XML provided was not well-formed or did not validate against our published schema. Check the service documentation and try again. 400 Client
MultipleDataSourcesUnsupported Multiple data sources are not supported. 400 Client
MissingRequiredParameter The SelectRequest entity is missing a required parameter. Check the service documentation and try again. 400 Client
ObjectSerializationConflict InputSerialization specifies more than one format (CSV, JSON, or Parquet), or OutputSerialization specifies more than one format (CSV or JSON). InputSerialization and OutputSerialization can only specify one format each. 400 Client
UnsupportedFunction Encountered an unsupported SQL function. 400 Client
UnsupportedSqlOperation Encountered an unsupported SQL operation. 400 Client
UnsupportedSqlStructure Encountered an unsupported SQL structure. Check the SQL Reference. 400 Client
UnsupportedStorageClass Encountered an invalid storage class. Only STANDARD, STANDARD_IA, and ONEZONE_IA storage classes are supported. 400 Client
UnsupportedSyntax Encountered invalid syntax. 400 Client
UnsupportedRangeHeader Range header is not supported for this operation. 400 Client
LexerInvalidChar The SQL expression contains an invalid character. 400 Client
LexerInvalidOperator The SQL expression contains an invalid literal. 400 Client
LexerInvalidLiteral The SQL expression contains an invalid operator. 400 Client
LexerInvalidIONLiteral The SQL expression contains an invalid operator. 400 Client
ParseExpectedDatePart Did not find the expected date part in the SQL expression. 400 Client
ParseExpectedKeyword Did not find the expected keyword in the SQL expression. 400 Client
ParseExpectedTokenType Did not find the expected token in the SQL expression. 400 Client
ParseExpected2TokenTypes Did not find the expected token in the SQL expression. 400 Client
ParseExpectedNumber Did not find the expected number in the SQL expression. 400 Client
ParseExpectedRightParenBuiltinFunctionCall Did not find the expected right parenthesis character in the SQL expression. 400 Client
ParseExpectedTypeName Did not find the expected type name in the SQL expression. 400 Client
ParseExpectedWhenClause Did not find the expected WHEN clause in the SQL expression. CASE is not supported. 400 Client
ParseUnsupportedToken The SQL expression contains an unsupported token. 400 Client
ParseUnsupportedLiteralsGroupBy The SQL expression contains an unsupported use of GROUP BY. 400 Client
ParseExpectedMember The SQL expression contains an unsupported use of MEMBER. 400 Client
ParseUnsupportedSelect The SQL expression contains an unsupported use of SELECT. 400 Client
ParseUnsupportedCase The SQL expression contains an unsupported use of CASE. 400 Client
ParseUnsupportedCaseClause The SQL expression contains an unsupported use of CASE. 400 Client
ParseUnsupportedAlias The SQL expression contains an unsupported use of ALIAS. 400 Client
ParseUnsupportedSyntax The SQL expression contains unsupported syntax. 400 Client
ParseUnknownOperator The SQL expression contains an invalid operator. 400 Client
ParseInvalidPathComponent The SQL expression contains an invalid path component. 400 Client
ParseMissingIdentAfterAt Did not find the expected identifier after the @ symbol in the SQL expression. 400 Client
ParseUnexpectedOperator The SQL expression contains an unexpected operator. 400 Client
ParseUnexpectedTerm The SQL expression contains an unexpected term. 400 Client
ParseUnexpectedToken The SQL expression contains an unexpected token. 400 Client
ParseUnExpectedKeyword The SQL expression contains an unexpected keyword. 400 Client
ParseExpectedExpression Did not find the expected SQL expression. 400 Client
ParseExpectedLeftParenAfterCast Did not find the expected left parenthesis after CAST in the SQL expression. 400 Client
ParseExpectedLeftParenValueConstructor Did not find expected the left parenthesis in the SQL expression. 400 Client
ParseExpectedLeftParenBuiltinFunctionCall Did not find the expected left parenthesis in the SQL expression. 400 Client
ParseExpectedArgumentDelimiter Did not find the expected argument delimiter in the SQL expression. 400 Client
ParseCastArity The SQL expression CAST has incorrect arity. 400 Client
ParseInvalidTypeParam The SQL expression contains an invalid parameter value. 400 Client
ParseEmptySelect The SQL expression contains an empty SELECT. 400 Client
ParseSelectMissingFrom The SQL expression contains a missing FROM after SELECT list. 400 Client
ParseExpectedIdentForGroupName GROUP is not supported in the SQL expression. 400 Client
ParseExpectedIdentForAlias Did not find the expected identifier for the alias in the SQL expression. 400 Client
ParseUnsupportedCallWithStar Only COUNT with (*) as a parameter is supported in the SQL expression. 400 Client
ParseNonUnaryAgregateFunctionCall Only one argument is supported for aggregate functions in the SQL expression. 400 Client
ParseMalformedJoin JOIN is not supported in the SQL expression. 400 Client
ParseExpectedIdentForAt Did not find the expected identifier for AT name in the SQL expression. 400 Client
ParseAsteriskIsNotAloneInSelectList Other expressions are not allowed in the SELECT list when '*' is used without dot notation in the SQL expression. 400 Client
ParseCannotMixSqbAndWildcardInSelectList Cannot mix [] and * in the same expression in a SELECT list in SQL expression. 400 Client
ParseInvalidContextForWildcardInSelectList Invalid use of * in SELECT list in the SQL expression. 400 Client
EvaluatorBindingDoesNotExist A column name or a path provided does not exist in the SQL expression. 400 Client
ValueParseFailure Time stamp parse failure in the SQL expression. 400 Client
IncorrectSqlFunctionArgumentType Incorrect type of arguments in function call in the SQL expression. 400 Client
AmbiguousFieldName Field name matches to multiple fields in the file. Check the SQL expression and the file, and try again. 400 Client
EvaluatorInvalidArguments Incorrect number of arguments in the function call in the SQL expression. 400 Client
EvaluatorInvalidTimestampFormatPattern Invalid time stamp format string in the SQL expression. 400 Client
ValueParseFailure Time stamp parse failure in the SQL expression. 400 Client
IntegerOverflow Integer overflow or underflow in the SQL expression. 400 Client
LikeInvalidInputs Invalid argument given to the LIKE clause in the SQL expression. 400 Client
CastFailed Attempt to convert from one data type to another using CAST failed in the SQL expression. 400 Client
InvalidCast Attempt to convert from one data type to another using CAST failed in the SQL expression. 400 Client
EvaluatorInvalidTimestampFormatPattern Time stamp format pattern requires additional fields in the SQL expression. 400 Client
EvaluatorInvalidTimestampFormatPatternSymbolForParsing Time stamp format pattern contains a valid format symbol that cannot be applied to time stamp parsing in the SQL expression. 400 Client
EvaluatorTimestampFormatPatternDuplicateFields Time stamp format pattern contains multiple format specifiers representing the time stamp field in the SQL expression. 400 Client
EvaluatorTimestampFormatPatternHourClockAmPmMismatch Time stamp format pattern contains a 12-hour hour of day format symbol but doesn't also contain an AM/PM field, or it contains a 24-hour hour of day format specifier and contains an AM/PM field in the SQL expression. 400 Client
EvaluatorUnterminatedTimestampFormatPatternToken Time stamp format pattern contains unterminated token in the SQL expression. 400 Client
EvaluatorInvalidTimestampFormatPatternToken Time stamp format pattern contains an invalid token in the SQL expression. 400 Client
EvaluatorInvalidTimestampFormatPatternSymbol Time stamp format pattern contains an invalid symbol in the SQL expression. 400 Client
ParquetParsingError Error parsing Parquet file. Please check the file and try again. 400 Client
NumberFormatError Error parsing a number. This can be caused by under/over flow of integers. 400 Client
EvaluatorLikePatternInvalidEscapeSequence Invalid argument given to LIKE expression. 400 Client
EvaluatorNegativeLimit LIMIT must not be negative. 400 Client
CSVUnescapedQuote Unescaped quote found while parsing the .csv file. Please ensure that AllowQuotedRecordDelimiter is set to 'TRUE' if quoted record delimiters are present. 400 Client
CSVEscapingRecordDelimiter Quoted record delimiter found in the file. To allow quoted record delimiters, please set AllowQuotedRecordDelimiter to 'TRUE'. 400 Client
OverMaxParquetBlockSize Parquet file is above the max row group size. 400 Client
UnsupportedParquetType Unsupported Parquet type. 400 Client
ParquetUnsupportedCompressionCodec Unsupported Parquet compression codec. 400 Client
UnsupportedScanRangeInput Scan range queries are not supported on this type of object. 400 Client
InvalidScanRange The provided scan range is invalid. 400 Client

List of Replication Related Error Codes

The following table contains special errors that the Replication operation might return. For general information about Amazon S3 errors and a list of error codes, see Error Responses.

Error Code Description HTTP Status Code SOAP Fault Code Prefix
InvalidArgument

You may see this error occur for the following reasons:

  • The >Account< element is empty. It must contain a valid account ID.

  • The AWS account specified in the <Account> element must match the destination bucket owner.

  • ReplicationTime-Status must contain a value

    .
  • ReplicationTime-ReplicationTimeValue must contain a value

    .
  • Replication-ReplicationTimeValue-Minutes value must be 15

    .
  • ReplicationMetrics must contain a Status.

  • ReplicationMetrics must contain an EventThreshold.

  • EventThreshold-ReplicationTimeValue-Minutes value must be 15.

    .
  • Rule ID must not contain non-ASCII characters.
400 Client
InvalidRequest

You may see this error occur for the following reasons:

  • The >Owner <in >AccessControlTranslation< has a value, the >Account< element must be specified.

  • The <Account> element is empty. It must contain a valid account ID.

  • Replication destination must contain both ReplicationTime and Metrics or neither.

  • ReplicationTime and ReplicationMetrics should have the same status

  • S3 Replication Time Control (S3 RTC) is not supported in this AWS Region

400 Client
NoSuchReplicationConfiguration There is no replication configuration with that name. 400 Client