@@ -22,19 +22,60 @@ private CommonErrorCodeMapping() {
2222 // The common error codes as source of truth is here:
2323 // https://docs.aws.amazon.com/STS/latest/APIReference/CommonErrors.html
2424 // https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/CommonErrors.html
25- ERROR_MAPPING = Map .ofEntries (
26- Map .entry ("AccessDeniedException" , UnAuthorizedException .class ),
27- Map .entry ("IncompleteSignature" , InvalidArgumentException .class ),
28- Map .entry ("InternalFailure" , UnknownException .class ),
29- Map .entry ("InvalidAction" , InvalidArgumentException .class ),
30- Map .entry ("InvalidClientTokenId" , InvalidArgumentException .class ),
31- Map .entry ("NotAuthorized" , UnAuthorizedException .class ),
32- Map .entry ("OptInRequired" , UnAuthorizedException .class ),
33- Map .entry ("RequestExpired" , ResourceExhaustedException .class ),
34- Map .entry ("ServiceUnavailable" , UnknownException .class ),
35- Map .entry ("ThrottlingException" , ResourceExhaustedException .class ),
36- Map .entry ("ValidationError" , InvalidArgumentException .class )
37- );
25+ // https://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html
26+ Map <String , Class <? extends SubstrateSdkException >> map = new HashMap <>();
27+
28+ // Common errors from STS/DynamoDB
29+ map .put ("IncompleteSignature" , InvalidArgumentException .class );
30+ map .put ("InternalFailure" , UnknownException .class );
31+ map .put ("InvalidAction" , InvalidArgumentException .class );
32+ map .put ("InvalidClientTokenId" , InvalidArgumentException .class );
33+ map .put ("NotAuthorized" , UnAuthorizedException .class );
34+ map .put ("OptInRequired" , UnAuthorizedException .class );
35+ map .put ("RequestExpired" , ResourceExhaustedException .class );
36+ map .put ("ServiceUnavailable" , UnknownException .class );
37+ map .put ("ThrottlingException" , ResourceExhaustedException .class );
38+ map .put ("ValidationError" , InvalidArgumentException .class );
39+
40+ // All 403 Forbidden errors from S3
41+ map .put ("AccessDenied" , UnAuthorizedException .class );
42+ map .put ("AccountNotAuthorized" , UnAuthorizedException .class );
43+ map .put ("AccountProblem" , UnAuthorizedException .class );
44+ map .put ("AllAccessDisabled" , UnAuthorizedException .class );
45+ map .put ("InvalidAccessKeyId" , InvalidArgumentException .class );
46+ map .put ("InvalidPayer" , UnAuthorizedException .class );
47+ map .put ("InvalidSecurity" , UnAuthorizedException .class );
48+ map .put ("NotSignedUp" , UnAuthorizedException .class );
49+ map .put ("RequestTimeTooSkewed" , InvalidArgumentException .class );
50+ map .put ("SignatureDoesNotMatch" , InvalidArgumentException .class );
51+ map .put ("TokenRefreshRequired" , UnAuthorizedException .class );
52+
53+ // Common 400 Bad Request errors
54+ map .put ("BadDigest" , InvalidArgumentException .class );
55+ map .put ("InvalidRequest" , InvalidArgumentException .class );
56+ map .put ("InvalidArgument" , InvalidArgumentException .class );
57+ map .put ("MalformedPolicy" , InvalidArgumentException .class );
58+ map .put ("MalformedXML" , InvalidArgumentException .class );
59+ map .put ("MetadataTooLarge" , InvalidArgumentException .class );
60+ map .put ("MissingContentLength" , InvalidArgumentException .class );
61+ map .put ("MissingSecurityHeader" , InvalidArgumentException .class );
62+ map .put ("RequestTimeout" , ResourceExhaustedException .class );
63+
64+ // Common 404 Not Found errors
65+ map .put ("NoSuchKey" , ResourceNotFoundException .class );
66+ map .put ("NoSuchBucket" , ResourceNotFoundException .class );
67+ map .put ("NoSuchVersion" , ResourceNotFoundException .class );
68+ map .put ("NoSuchUpload" , ResourceNotFoundException .class );
69+
70+ // Common 409 Conflict errors
71+ map .put ("BucketAlreadyExists" , ResourceAlreadyExistsException .class );
72+ map .put ("BucketAlreadyOwnedByYou" , ResourceAlreadyExistsException .class );
73+ map .put ("OperationAborted" , ResourceConflictException .class );
74+
75+ // Common 503 Service Unavailable errors
76+ map .put ("SlowDown" , ResourceExhaustedException .class );
77+
78+ ERROR_MAPPING = Collections .unmodifiableMap (map );
3879 }
3980
4081 public static Map <String , Class <? extends SubstrateSdkException >> get () {
0 commit comments