s3-binary-cache: show the error's request ID
The request ID is essential for traceability and debugging purposes. It allows us to connect client-side to server-side events.
This commit is contained in:
@@ -48,7 +48,11 @@ R && checkAws(std::string_view s, Aws::Utils::Outcome<R, E> && outcome)
|
||||
if (!outcome.IsSuccess())
|
||||
throw S3Error(
|
||||
outcome.GetError().GetErrorType(),
|
||||
s + ": " + outcome.GetError().GetMessage());
|
||||
fmt(
|
||||
"%s: %s (request id: %s)",
|
||||
s,
|
||||
outcome.GetError().GetMessage(),
|
||||
outcome.GetError().GetRequestId()));
|
||||
return outcome.GetResultWithOwnership();
|
||||
}
|
||||
|
||||
@@ -121,9 +125,10 @@ class RetryStrategy : public Aws::Client::DefaultRetryStrategy
|
||||
checkInterrupt();
|
||||
auto retry = Aws::Client::DefaultRetryStrategy::ShouldRetry(error, attemptedRetries);
|
||||
if (retry)
|
||||
printError("AWS error '%s' (%s), will retry in %d ms",
|
||||
printError("AWS error '%s' (%s; request id: %s), will retry in %d ms",
|
||||
error.GetExceptionName(),
|
||||
error.GetMessage(),
|
||||
error.GetRequestId(),
|
||||
CalculateDelayBeforeNextRetry(error, attemptedRetries));
|
||||
return retry;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user