diff --git a/tcp_tests/managers/jenkins/client.py b/tcp_tests/managers/jenkins/client.py
index a7c2315..b9f6a02 100644
--- a/tcp_tests/managers/jenkins/client.py
+++ b/tcp_tests/managers/jenkins/client.py
@@ -11,6 +11,37 @@
 from requests.exceptions import ConnectionError
 
 
+def send_request(action, endpoint):
+    """
+    Wait 2 seconds time and retry requests if it fail with connection to
+    endpoint
+    Raises Connection exceptions after 5 unsuccessful steps
+
+    :param action: string
+    :param body: string, url to send request
+    :return: response
+    :raise ConnectionError after several unsuccessful connections
+    """
+    max_retries = 5
+    sleep_time_before_repeat = 2
+
+    step = 0
+    while step < max_retries:
+        try:
+            response = requests.Request(action, endpoint)
+            return response
+        except ConnectionError as error:
+            step = step + 1
+            print("Can't get {} due to error: {}.\nRetry {}/{}".format(
+                endpoint,
+                error,
+                step,
+                max_retries
+            ))
+            time.sleep(sleep_time_before_repeat)
+    raise ConnectionError
+
+
 class JenkinsClient(object):
 
     def __init__(self, host=None, username='admin', password='r00tme'):
@@ -181,7 +212,7 @@
         PROGRESSIVE_CONSOLE_OUTPUT = (
             '%(folder_url)sjob/%(short_name)s/%(build_id)d/'
             'logText/progressiveText?start=%(start)d')
-        req = requests.Request(
+        req = send_request(
                 'GET',
                 self.__client._build_url(PROGRESSIVE_CONSOLE_OUTPUT, locals()))
         return(self.__client.jenkins_request(req))
@@ -204,7 +235,7 @@
         else:
             WORKFLOW_DESCRIPTION = (
                 '%(folder_url)sjob/%(short_name)s/%(build_id)s/wfapi/%(mode)s')
-        req = requests.Request(
+        req = send_request(
                 'GET',
                 self.__client._build_url(WORKFLOW_DESCRIPTION, locals()))
         response = self.__client.jenkins_open(req)
@@ -226,7 +257,7 @@
 
         DOWNLOAD_URL = ('%(folder_url)sjob/%(short_name)s/%(build_id)s/'
                         'artifact/%(artifact_path)s')
-        req = requests.Request(
+        req = send_request(
                 'GET',
                 self.__client._build_url(DOWNLOAD_URL, locals()))
 
