diff --git a/cfg_checker/common/file_utils.py b/cfg_checker/common/file_utils.py
index 684fc30..9c043a8 100644
--- a/cfg_checker/common/file_utils.py
+++ b/cfg_checker/common/file_utils.py
@@ -93,3 +93,12 @@
     _bytes = BytesIO(get(url).content)
     with gzip.GzipFile(fileobj=_bytes) as gz:
         return gz.read()
+
+
+def ensure_folder_exists(_folder):
+    if not os.path.exists(_folder):
+        # it is not exists, create it
+        os.mkdir(_folder)
+        return "... folder '{}' created".format(_folder)
+    else:
+        return "... folder is at '{}'".format(_folder)
diff --git a/cfg_checker/helpers/errors.py b/cfg_checker/helpers/errors.py
index eaaa1eb..83ae803 100644
--- a/cfg_checker/helpers/errors.py
+++ b/cfg_checker/helpers/errors.py
@@ -37,16 +37,7 @@
             self._conf_filename
         )
 
-        if not os.path.exists(_folder):
-            # it is not exists, create it
-            os.mkdir(_folder)
-            logger_cli.debug(
-                "... error logs folder '{}' created".format(_folder)
-            )
-        else:
-            logger_cli.debug(
-                "... error logs folder is at '{}'".format(_folder)
-            )
+        logger_cli.debug(fu.ensure_folder_exists(_folder))
         if not os.path.exists(self._conf_filename):
             # put file with init values
             self.conf = ConfigFile(self._area_code.lower())
diff --git a/cfg_checker/modules/packages/repos.py b/cfg_checker/modules/packages/repos.py
index 025703e..27c388c 100644
--- a/cfg_checker/modules/packages/repos.py
+++ b/cfg_checker/modules/packages/repos.py
@@ -12,6 +12,7 @@
 from cfg_checker.common.const import _repos_info_archive
 from cfg_checker.common.const import _repos_versions_archive
 from cfg_checker.common.const import ubuntu_releases
+from cfg_checker.common.file_utils import ensure_folder_exists
 from cfg_checker.common.file_utils import get_gzipped_file
 from cfg_checker.common.settings import pkg_dir
 from cfg_checker.helpers.console_utils import Progress
@@ -339,8 +340,9 @@
 
 class RepoManager(object):
     # archives
-    _versions_arch = os.path.join(pkg_dir, "versions", _repos_versions_archive)
-    _desc_arch = os.path.join(pkg_dir, "versions", _pkg_desc_archive)
+    _arch_folder = os.path.join(pkg_dir, "versions")
+    _versions_arch = os.path.join(_arch_folder, _repos_versions_archive)
+    _desc_arch = os.path.join(_arch_folder, _pkg_desc_archive)
     _apps_filename = "apps.json"
 
     # repository index
@@ -354,6 +356,8 @@
     _versions_other = {}
 
     def __init__(self):
+        # Ensure that versions folder exists
+        logger_cli.debug(ensure_folder_exists(self._arch_folder))
         # Init version files
         self.versionstgz = TGZFile(
             self._versions_arch,
