aws-sdk-java-v2 icon indicating copy to clipboard operation
aws-sdk-java-v2 copied to clipboard

S3 createMultipartUpload throws signature mismatch error

Open vicasong opened this issue 3 years ago • 5 comments

Describe the bug

I updated from an old sdk version to sdk2, and then there is a problem that the s3 service cannot be used, the error description is: software.amazon.awssdk.services.s3.model.S3Exception: The request signature we calculated does not match the signature you provided. Check your key and signing method.

My code:

S3Client s3Client = S3Client.builder()
                .region(Region.of(region))
                .credentialsProvider(credentialsProvider)
                .serviceConfiguration(S3Configuration.builder()
                        .checksumValidationEnabled(true)
                        .build())
                .overrideConfiguration(ClientOverrideConfiguration.builder()
                        .addExecutionInterceptor(new ModifyRequestTimeOffsetInterceptor())
                        .apiCallTimeout(Duration.ofSeconds(DownloadConstant.REQUEST_TIMEOUT))
                        .apiCallAttemptTimeout(Duration.ofSeconds(DownloadConstant.CONNECTION_TIMEOUT))
                        .build())
                .build()
CreateMultipartUploadRequest request = CreateMultipartUploadRequest.builder()
                .bucket(bucket)
                .key(fileInfo.getKey())
                .checksumAlgorithm(ChecksumAlgorithm.CRC32)
                .build();
CreateMultipartUploadResponse response = s3Client.createMultipartUpload(request);

A separate interceptor was added because the old version needed to change the request timestamp to keep it in sync with the server time instead of being affected by the wrong client local time:

// ModifyRequestTimeOffsetInterceptor.java
@Override
public void beforeExecution(Context.BeforeExecution context, ExecutionAttributes executionAttributes) {
        long timeOffsetByServerTime = CurrentSession.getTimeOffset() / 1000;
        int timeOffsetSecByClient = -(int) timeOffsetByServerTime;
        executionAttributes.putAttribute(AwsSignerExecutionAttribute.TIME_OFFSET, timeOffsetSecByClient);
}

Expected Behavior

successfully executed

Current Behavior

Throw an exception

14:52:15.604 [worker-3] DEBUG software.amazon.awssdk.core.retry.ClockSkew - Reported service date: Fri, 24 Jun 2022 06:52:15 GMT
14:52:15.608 [worker-4] DEBUG software.amazon.awssdk.core.interceptor.ExecutionInterceptorChain - Creating an interceptor chain that will apply interceptors in the following order: [software.amazon.awssdk.core.internal.interceptor.HttpChecksumRequiredInterceptor@54553702, software.amazon.awssdk.core.internal.interceptor.SyncHttpChecksumInTrailerInterceptor@355cb4ce, software.amazon.awssdk.core.internal.interceptor.HttpChecksumValidationInterceptor@ffede, software.amazon.awssdk.core.internal.interceptor.AsyncRequestBodyHttpChecksumTrailerInterceptor@59a86f1a, software.amazon.awssdk.core.internal.interceptor.HttpChecksumInHeaderInterceptor@24b8ae0a, software.amazon.awssdk.awscore.interceptor.HelpfulUnknownHostExceptionInterceptor@74928497, software.amazon.awssdk.awscore.eventstream.EventStreamInitialRequestInterceptor@b947dd5, software.amazon.awssdk.awscore.interceptor.TraceIdExecutionInterceptor@115e0302, software.amazon.awssdk.services.s3.internal.handlers.EnableChunkedEncodingInterceptor@70f727dd, software.amazon.awssdk.services.s3.internal.handlers.DisableDoubleUrlEncodingInterceptor@10a1b368, software.amazon.awssdk.services.s3.internal.handlers.EnableTrailingChecksumInterceptor@38f31e7c, software.amazon.awssdk.services.s3.internal.handlers.CreateMultipartUploadRequestInterceptor@59d44c73, software.amazon.awssdk.services.s3.internal.handlers.GetObjectInterceptor@1054415b, software.amazon.awssdk.services.s3.internal.handlers.ExceptionTranslationInterceptor@d738aca, software.amazon.awssdk.services.s3.internal.handlers.AsyncChecksumValidationInterceptor@2dd375e6, software.amazon.awssdk.services.s3.internal.handlers.EndpointAddressInterceptor@569f03fb, software.amazon.awssdk.services.s3.internal.handlers.SignerOverrideInterceptor@6473ceea, software.amazon.awssdk.services.s3.internal.handlers.GetBucketPolicyInterceptor@75c72d74, software.amazon.awssdk.services.s3.internal.handlers.PutObjectInterceptor@438d1a6f, software.amazon.awssdk.services.s3.internal.handlers.SyncChecksumValidationInterceptor@6da3493e, software.amazon.awssdk.services.s3.internal.handlers.DecodeUrlEncodedResponseInterceptor@17ddcefe, software.amazon.awssdk.services.s3.internal.handlers.CreateBucketInterceptor@5b3dfdfc, software.amazon.awssdk.services.s3.internal.handlers.CopySourceInterceptor@7048da96, com.bgi.fontaine.sdk.s3.ModifyRequestTimeOffsetInterceptor@7559718]
14:52:15.609 [worker-4] DEBUG software.amazon.awssdk.core.interceptor.ExecutionInterceptorChain - Interceptor 'software.amazon.awssdk.services.s3.internal.handlers.CreateMultipartUploadRequestInterceptor@59d44c73' modified the message with its modifyHttpRequest method.
14:52:15.610 [worker-4] DEBUG software.amazon.awssdk.core.interceptor.ExecutionInterceptorChain - Interceptor 'software.amazon.awssdk.services.s3.internal.handlers.EndpointAddressInterceptor@569f03fb' modified the message with its modifyHttpRequest method.
14:52:15.610 [worker-4] DEBUG software.amazon.awssdk.request - Sending Request: DefaultSdkHttpFullRequest(httpMethod=POST, protocol=https, host=sy-euro-test.s3.eu-central-1.amazonaws.com, port=443, encodedPath=/test-up.zip, headers=[amz-sdk-invocation-id, Content-Length, Content-Type, User-Agent, x-amz-checksum-algorithm], queryParameters=[uploads])
14:52:15.611 [worker-4] DEBUG software.amazon.awssdk.auth.signer.Aws4Signer - AWS4 String to sign: AWS4-HMAC-SHA256
20220624T065215Z
20220624/eu-central-1/s3/aws4_request
d767e47888a73da12b221f5636039bf2caf07f81248e1a8480fa8a57664ae996

software.amazon.awssdk.services.s3.model.S3Exception: The request signature we calculated does not match the signature you provided. Check your key and signing method. (Service: S3, Status Code: 403, Request ID: XQ9V3Y5SA2RZG000, Extended Request ID: o9eM9UGHjj0ahJ0FVrqGpm/5eBcVret7et2s2MruobEAcCI4qXsQRv4OHqTlJTbmbnjFcPt8DBQ=)
	at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handleErrorResponse(AwsXmlPredicatedResponseHandler.java:156)
	at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handleResponse(AwsXmlPredicatedResponseHandler.java:108)
	at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handle(AwsXmlPredicatedResponseHandler.java:85)
	at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handle(AwsXmlPredicatedResponseHandler.java:43)
	at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler$Crc32ValidationResponseHandler.handle(AwsSyncClientHandler.java:95)
	at software.amazon.awssdk.core.internal.handler.BaseClientHandler.lambda$successTransformationResponseHandler$7(BaseClientHandler.java:245)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.HandleResponseStage.execute(HandleResponseStage.java:40)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.HandleResponseStage.execute(HandleResponseStage.java:30)
	at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptTimeoutTrackingStage.execute(ApiCallAttemptTimeoutTrackingStage.java:73)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptTimeoutTrackingStage.execute(ApiCallAttemptTimeoutTrackingStage.java:42)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.TimeoutExceptionHandlingStage.execute(TimeoutExceptionHandlingStage.java:78)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.TimeoutExceptionHandlingStage.execute(TimeoutExceptionHandlingStage.java:40)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptMetricCollectionStage.execute(ApiCallAttemptMetricCollectionStage.java:50)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptMetricCollectionStage.execute(ApiCallAttemptMetricCollectionStage.java:36)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.RetryableStage.execute(RetryableStage.java:81)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.RetryableStage.execute(RetryableStage.java:36)
	at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206)
	at software.amazon.awssdk.core.internal.http.StreamManagingStage.execute(StreamManagingStage.java:56)
	at software.amazon.awssdk.core.internal.http.StreamManagingStage.execute(StreamManagingStage.java:36)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.executeWithTimer(ApiCallTimeoutTrackingStage.java:80)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.execute(ApiCallTimeoutTrackingStage.java:60)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.execute(ApiCallTimeoutTrackingStage.java:42)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallMetricCollectionStage.execute(ApiCallMetricCollectionStage.java:48)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallMetricCollectionStage.execute(ApiCallMetricCollectionStage.java:31)
	at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206)
	at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.ExecutionFailureExceptionReportingStage.execute(ExecutionFailureExceptionReportingStage.java:37)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.ExecutionFailureExceptionReportingStage.execute(ExecutionFailureExceptionReportingStage.java:26)
	at software.amazon.awssdk.core.internal.http.AmazonSyncHttpClient$RequestExecutionBuilderImpl.execute(AmazonSyncHttpClient.java:193)
	at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.invoke(BaseSyncClientHandler.java:103)
	at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.doExecute(BaseSyncClientHandler.java:167)
	at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.lambda$execute$1(BaseSyncClientHandler.java:82)
	at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.measureApiCallSuccess(BaseSyncClientHandler.java:175)
	at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.execute(BaseSyncClientHandler.java:76)
	at software.amazon.awssdk.core.client.handler.SdkSyncClientHandler.execute(SdkSyncClientHandler.java:45)
	at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.execute(AwsSyncClientHandler.java:56)
	at software.amazon.awssdk.services.s3.DefaultS3Client.createMultipartUpload(DefaultS3Client.java:1532)

Reproduction Steps

just run

Possible Solution

none

Additional Information/Context

No response

AWS Java SDK version used

2.17.214

JDK version used

1.8.0

Operating System and version

windows10

vicasong avatar Jun 24 '22 07:06 vicasong

My guess is that the time offset in the interceptor is messing with the signature somehow. The SDK also has the ability to automatically react to some level of clockskew errors, that's why you see DEBUG software.amazon.awssdk.core.retry.ClockSkew in the logs.

Does it work without changing the request timestamp in the interceptor?

debora-ito avatar Jun 24 '22 21:06 debora-ito

I commented out the line of code that added ModifyRequestTimeOffsetInterceptor, but still reported the same error

vicasong avatar Jun 27 '22 01:06 vicasong

In debug mode, by breaking a point in the AWSS3V4Signer class, there are some key parameters as follows:

requestParams={Aws4SignerRequestParams@4344}
 - signingClock={Clock$SystemClock@4365} "SystemClock[Z]"
 - requestSigningDateTimeMilli=1656292507503
 - scope="20220627/eu-central-1/s3/aws4_request"
 - regionName="eu-central-1"
 - serviceSigningName="s3"
 - formattedRequestSigningDateTime="20220627T011507Z"
 - formattedRequestSigningDate="20220627"
signingParams={AwsS3V4SignerParams@4347}
 - enableChunckedEncoding=false
 - enablePayloadSigning=false
 - doubleUrlEncode=false
 - awsCredentials={AwsBasicCredentials@4358}
 - signingName="s3"
 - signingRegion="eu-central-1"
 - timeOffset=0
 - signingClockOverride=null
 - checksumParams=null
contentChecksum={ContentChecksum@4388} "ContentChecksum{hash='UNSIGNED-PAYLOAD', contentFlexibleChecksum=null}"
canonicalRequestString="POST\n/test-up.zip\nuploads=\namz-sdk-invocation-id:fac35a21-ab8a-e82f-b403-4b27ecb55631\namz-sdk-request:attempt=1; max=4\ncontent-length:0\ncontent-type:binary/octet-stream\nhost:sy-euro-test.s3.eu-central-1.amazonaws.com\nx-amz-checksum-algorithm:CRC32\nx-amz-content-sha256:UNSIGNED-PAYLOAD\nx-amz-date:20220627T011507Z\n\namz-sdk-invocation-id;amz-sdk-request;content-length;content-type;host;x-amz-checksum-algorithm;x-amz-content-sha256;x-amz-date\nUNSIGNED-PAYLOAD"
stringToSign="AWS4-HMAC-SHA256\n20220627T011507Z\n20220627/eu-central-1/s3/aws4_request\n72091c94bf0b7dcac0270cbacb122a99d7a782c96c313daf6b7f6afa812fd41e"

Am I missing something?

vicasong avatar Jun 27 '22 02:06 vicasong

I even simplified down to just a few lines of code and still got the same error.

try (S3Client s3Client = S3Client.builder()
                .region(Region.of("eu-central-1"))
                .credentialsProvider(StaticCredentialsProvider
                        .create(AwsBasicCredentials .create("xxxx", "xxxxxxxx")))
                .build()) {
            CreateMultipartUploadRequest request = CreateMultipartUploadRequest.builder()
                    .bucket("sy-euro-test")
                    .key("test-upload.zip")
                    .build();
            CreateMultipartUploadResponse response = s3Client.createMultipartUpload(request);
            System.out.println(response.uploadId());
 }

Error:

10:53:10.026 [Test worker] DEBUG software.amazon.awssdk.core.interceptor.ExecutionInterceptorChain - Creating an interceptor chain that will apply interceptors in the following order: [software.amazon.awssdk.core.internal.interceptor.HttpChecksumRequiredInterceptor@3f236259, software.amazon.awssdk.core.internal.interceptor.SyncHttpChecksumInTrailerInterceptor@458fce7d, software.amazon.awssdk.core.internal.interceptor.HttpChecksumValidationInterceptor@24ede1d7, software.amazon.awssdk.core.internal.interceptor.AsyncRequestBodyHttpChecksumTrailerInterceptor@405e4874, software.amazon.awssdk.core.internal.interceptor.HttpChecksumInHeaderInterceptor@64cbcb8c, software.amazon.awssdk.awscore.interceptor.HelpfulUnknownHostExceptionInterceptor@5f0c1d4e, software.amazon.awssdk.awscore.eventstream.EventStreamInitialRequestInterceptor@1424ac21, software.amazon.awssdk.awscore.interceptor.TraceIdExecutionInterceptor@260b4b39, software.amazon.awssdk.services.s3.internal.handlers.EnableChunkedEncodingInterceptor@1ca663df, software.amazon.awssdk.services.s3.internal.handlers.DisableDoubleUrlEncodingInterceptor@237ffb68, software.amazon.awssdk.services.s3.internal.handlers.EnableTrailingChecksumInterceptor@128b0e82, software.amazon.awssdk.services.s3.internal.handlers.CreateMultipartUploadRequestInterceptor@6e25dd69, software.amazon.awssdk.services.s3.internal.handlers.GetObjectInterceptor@4132e3e9, software.amazon.awssdk.services.s3.internal.handlers.ExceptionTranslationInterceptor@1dcaf41c, software.amazon.awssdk.services.s3.internal.handlers.AsyncChecksumValidationInterceptor@577f1639, software.amazon.awssdk.services.s3.internal.handlers.EndpointAddressInterceptor@1771472a, software.amazon.awssdk.services.s3.internal.handlers.SignerOverrideInterceptor@418ad386, software.amazon.awssdk.services.s3.internal.handlers.GetBucketPolicyInterceptor@baaa5bf, software.amazon.awssdk.services.s3.internal.handlers.PutObjectInterceptor@24cbb42d, software.amazon.awssdk.services.s3.internal.handlers.SyncChecksumValidationInterceptor@399eff89, software.amazon.awssdk.services.s3.internal.handlers.DecodeUrlEncodedResponseInterceptor@2e9f1ddf, software.amazon.awssdk.services.s3.internal.handlers.CreateBucketInterceptor@7046d2ee, software.amazon.awssdk.services.s3.internal.handlers.CopySourceInterceptor@9d57a17]
10:53:10.059 [Test worker] DEBUG software.amazon.awssdk.core.interceptor.ExecutionInterceptorChain - Interceptor 'software.amazon.awssdk.services.s3.internal.handlers.CreateMultipartUploadRequestInterceptor@6e25dd69' modified the message with its modifyHttpRequest method.
10:53:10.066 [Test worker] DEBUG software.amazon.awssdk.core.interceptor.ExecutionInterceptorChain - Interceptor 'software.amazon.awssdk.services.s3.internal.handlers.EndpointAddressInterceptor@1771472a' modified the message with its modifyHttpRequest method.
10:53:10.089 [Test worker] DEBUG software.amazon.awssdk.request - Sending Request: DefaultSdkHttpFullRequest(httpMethod=POST, protocol=https, host=sy-euro-test.s3.eu-central-1.amazonaws.com, port=443, encodedPath=/test-upload.zip, headers=[amz-sdk-invocation-id, Content-Length, Content-Type, User-Agent], queryParameters=[uploads])
10:53:10.103 [Test worker] DEBUG software.amazon.awssdk.auth.signer.Aws4Signer - AWS4 String to sign: AWS4-HMAC-SHA256
20220627T025310Z
20220627/eu-central-1/s3/aws4_request
a1bfc7e30e7341183bfd9fc9abecc33a098919d631f64ab39e1058d3e8526fe2
10:53:10.423 [Test worker] DEBUG software.amazon.awssdk.http.apache.internal.conn.SdkTlsSocketFactory - socket.getSupportedProtocols(): [TLSv1.3, TLSv1.2, TLSv1.1, TLSv1, SSLv3, SSLv2Hello], socket.getEnabledProtocols(): [TLSv1.2, TLSv1.1, TLSv1]
10:53:10.863 [Test worker] DEBUG software.amazon.awssdk.http.apache.internal.net.SdkSslSocket - created: sy-euro-test.s3.eu-central-1.amazonaws.com/52.219.169.130:443
10:53:11.090 [Test worker] DEBUG software.amazon.awssdk.requestId - Received failed response: 403, Request ID: GW0GW9P63F1SKQJW, Extended Request ID: N4ZY4GQYCxRDvjf+KH72AZkclVTrn6pkSpbZcPsc+l+R4aMepSA7l+VN/vDvUS6qvg/95V9yI6s=
10:53:11.091 [Test worker] DEBUG software.amazon.awssdk.request - Received failed response: 403, Request ID: GW0GW9P63F1SKQJW, Extended Request ID: N4ZY4GQYCxRDvjf+KH72AZkclVTrn6pkSpbZcPsc+l+R4aMepSA7l+VN/vDvUS6qvg/95V9yI6s=
10:53:11.103 [Test worker] DEBUG software.amazon.awssdk.core.retry.ClockSkew - Reported service date: Mon, 27 Jun 2022 02:53:10 GMT
10:53:11.109 [Test worker] DEBUG software.amazon.awssdk.core.retry.ClockSkew - Reported service date: Mon, 27 Jun 2022 02:53:10 GMT
10:53:11.116 [Test worker] DEBUG software.amazon.awssdk.http.apache.internal.net.SdkSslSocket - closing sy-euro-test.s3.eu-central-1.amazonaws.com/52.219.169.130:443
10:53:11.118 [idle-connection-reaper] DEBUG software.amazon.awssdk.http.apache.internal.conn.IdleConnectionReaper - Reaper thread: 
java.lang.InterruptedException: sleep interrupted
	at java.lang.Thread.sleep(Native Method)
	at software.amazon.awssdk.http.apache.internal.conn.IdleConnectionReaper$ReaperTask.run(IdleConnectionReaper.java:150)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at java.lang.Thread.run(Thread.java:748)
10:53:11.119 [idle-connection-reaper] DEBUG software.amazon.awssdk.http.apache.internal.conn.IdleConnectionReaper - Shutting down reaper thread.

The request signature we calculated does not match the signature you provided. Check your key and signing method. (Service: S3, Status Code: 403, Request ID: GW0GW9P63F1SKQJW, Extended Request ID: N4ZY4GQYCxRDvjf+KH72AZkclVTrn6pkSpbZcPsc+l+R4aMepSA7l+VN/vDvUS6qvg/95V9yI6s=)
software.amazon.awssdk.services.s3.model.S3Exception: The request signature we calculated does not match the signature you provided. Check your key and signing method. (Service: S3, Status Code: 403, Request ID: GW0GW9P63F1SKQJW, Extended Request ID: N4ZY4GQYCxRDvjf+KH72AZkclVTrn6pkSpbZcPsc+l+R4aMepSA7l+VN/vDvUS6qvg/95V9yI6s=)
	at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handleErrorResponse(AwsXmlPredicatedResponseHandler.java:156)
	at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handleResponse(AwsXmlPredicatedResponseHandler.java:108)
	at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handle(AwsXmlPredicatedResponseHandler.java:85)
	at software.amazon.awssdk.protocols.xml.internal.unmarshall.AwsXmlPredicatedResponseHandler.handle(AwsXmlPredicatedResponseHandler.java:43)
	at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler$Crc32ValidationResponseHandler.handle(AwsSyncClientHandler.java:95)
	at software.amazon.awssdk.core.internal.handler.BaseClientHandler.lambda$successTransformationResponseHandler$7(BaseClientHandler.java:245)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.HandleResponseStage.execute(HandleResponseStage.java:40)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.HandleResponseStage.execute(HandleResponseStage.java:30)
	at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptTimeoutTrackingStage.execute(ApiCallAttemptTimeoutTrackingStage.java:73)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptTimeoutTrackingStage.execute(ApiCallAttemptTimeoutTrackingStage.java:42)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.TimeoutExceptionHandlingStage.execute(TimeoutExceptionHandlingStage.java:78)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.TimeoutExceptionHandlingStage.execute(TimeoutExceptionHandlingStage.java:40)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptMetricCollectionStage.execute(ApiCallAttemptMetricCollectionStage.java:50)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallAttemptMetricCollectionStage.execute(ApiCallAttemptMetricCollectionStage.java:36)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.RetryableStage.execute(RetryableStage.java:81)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.RetryableStage.execute(RetryableStage.java:36)
	at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206)
	at software.amazon.awssdk.core.internal.http.StreamManagingStage.execute(StreamManagingStage.java:56)
	at software.amazon.awssdk.core.internal.http.StreamManagingStage.execute(StreamManagingStage.java:36)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.executeWithTimer(ApiCallTimeoutTrackingStage.java:80)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.execute(ApiCallTimeoutTrackingStage.java:60)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallTimeoutTrackingStage.execute(ApiCallTimeoutTrackingStage.java:42)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallMetricCollectionStage.execute(ApiCallMetricCollectionStage.java:48)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.ApiCallMetricCollectionStage.execute(ApiCallMetricCollectionStage.java:31)
	at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206)
	at software.amazon.awssdk.core.internal.http.pipeline.RequestPipelineBuilder$ComposingRequestPipelineStage.execute(RequestPipelineBuilder.java:206)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.ExecutionFailureExceptionReportingStage.execute(ExecutionFailureExceptionReportingStage.java:37)
	at software.amazon.awssdk.core.internal.http.pipeline.stages.ExecutionFailureExceptionReportingStage.execute(ExecutionFailureExceptionReportingStage.java:26)
	at software.amazon.awssdk.core.internal.http.AmazonSyncHttpClient$RequestExecutionBuilderImpl.execute(AmazonSyncHttpClient.java:193)
	at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.invoke(BaseSyncClientHandler.java:103)
	at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.doExecute(BaseSyncClientHandler.java:167)
	at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.lambda$execute$1(BaseSyncClientHandler.java:82)
	at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.measureApiCallSuccess(BaseSyncClientHandler.java:175)
	at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.execute(BaseSyncClientHandler.java:76)
	at software.amazon.awssdk.core.client.handler.SdkSyncClientHandler.execute(SdkSyncClientHandler.java:45)
	at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.execute(AwsSyncClientHandler.java:56)
	at software.amazon.awssdk.services.s3.DefaultS3Client.createMultipartUpload(DefaultS3Client.java:1532)

vicasong avatar Jun 27 '22 02:06 vicasong

After trying all day, I found one thing: Incorrect credentials This error message leads to the wrong direction of troubleshooting, and a wrong credential returns a signature error

vicasong avatar Jun 27 '22 09:06 vicasong

@vicasong Apologies for loosing track of this. Yes, incorrect credentials are one of the things that can lead to signature mismatch errors. Any field taken in the signature calculation can result in a signature error if it's value does not match the expected value received by the service. I guess the ClockSkew error was a red herring then.

Marking this to auto-close soon, let us know if you have any other question.

debora-ito avatar Sep 08 '22 23:09 debora-ito