diff --git a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/client/HttpClientWithRetry.java b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/client/HttpClientWithRetry.java
index 5e9ec56..f57a67b 100644
--- a/src/main/java/com/googlesource/gerrit/plugins/chatgpt/client/HttpClientWithRetry.java
+++ b/src/main/java/com/googlesource/gerrit/plugins/chatgpt/client/HttpClientWithRetry.java
@@ -2,6 +2,7 @@
 
 import com.github.rholder.retry.*;
 import com.google.inject.Singleton;
+import lombok.extern.slf4j.Slf4j;
 
 import java.net.http.HttpClient;
 import java.net.http.HttpRequest;
@@ -13,6 +14,7 @@
 import static java.net.HttpURLConnection.HTTP_OK;
 
 @Singleton
+@Slf4j
 public class HttpClientWithRetry {
     private final Retryer<HttpResponse<String>> retryer;
 
@@ -21,11 +23,22 @@
             .build();
 
     public HttpClientWithRetry() {
+        //Attention, 'com.github.rholder.retry.RetryListener' is marked unstable with @Beta annotation
+        RetryListener listener = new RetryListener() {
+            @Override
+            public <V> void onRetry(Attempt<V> attempt) {
+                if (attempt.hasException()) {
+                    log.error("Retry failed with exception: " + attempt.getExceptionCause());
+                }
+            }
+        };
+
         this.retryer = RetryerBuilder.<HttpResponse<String>>newBuilder()
                 .retryIfException()
                 .retryIfResult(response -> response.statusCode() != HTTP_OK)
-                .withWaitStrategy(WaitStrategies.fixedWait(10, TimeUnit.SECONDS))
-                .withStopStrategy(StopStrategies.stopAfterAttempt(3))
+                .withWaitStrategy(WaitStrategies.fixedWait(20, TimeUnit.SECONDS))
+                .withStopStrategy(StopStrategies.stopAfterAttempt(5))
+                .withRetryListener(listener)
                 .build();
     }
 
