diff --git a/producer/api/cpp/src/request_handler_tcp.cpp b/producer/api/cpp/src/request_handler_tcp.cpp
index 9be95ddd219f83c025a6f36caac4119c65efd22e..00a2337e29056929270e6bf51b71954679148a74 100644
--- a/producer/api/cpp/src/request_handler_tcp.cpp
+++ b/producer/api/cpp/src/request_handler_tcp.cpp
@@ -302,7 +302,7 @@ void RequestHandlerTcp::PrepareProcessingRequestLocked() {
 }
 
 void RequestHandlerTcp::TearDownProcessingRequestLocked(bool request_processed_successfully) {
-    if (!request_processed_successfully) {
+    if (!request_processed_successfully && *ncurrent_connections_>0) {
         (*ncurrent_connections_)--;
     }
 }
diff --git a/tests/automatic/consumer/consumer_api/consumer_api.cpp b/tests/automatic/consumer/consumer_api/consumer_api.cpp
index 26230c93279759c59ca9505b5796e5ac2390edd9..b973d007684fed1ff460cc565f5ec8aa4e498944 100644
--- a/tests/automatic/consumer/consumer_api/consumer_api.cpp
+++ b/tests/automatic/consumer/consumer_api/consumer_api.cpp
@@ -327,7 +327,7 @@ void TestAll(const Args& args) {
         exit(EXIT_FAILURE);
     }
 
-    consumer->SetTimeout(1000);
+    consumer->SetTimeout(10000);
     auto group_id = consumer->GenerateNewGroupId(&err);
 
     if (args.datasets == "single") {