diff --git a/blenderkit/paths.py b/blenderkit/paths.py
index 112e2465b907bca8d9be20a2df86b6838f7852fa..daf56b9605ec5e80e2eaa0b2781ec317a29f1f50 100644
--- a/blenderkit/paths.py
+++ b/blenderkit/paths.py
@@ -84,12 +84,21 @@ def get_temp_dir(subdir=None):
     tempdir = os.path.join(user_preferences.global_dir, 'temp')
     if tempdir.startswith('//'):
         tempdir = bpy.path.abspath(tempdir)
-    if not os.path.exists(tempdir):
-        os.makedirs(tempdir)
-    if subdir is not None:
-        tempdir = os.path.join(tempdir, subdir)
+    try:
         if not os.path.exists(tempdir):
             os.makedirs(tempdir)
+        if subdir is not None:
+            tempdir = os.path.join(tempdir, subdir)
+            if not os.path.exists(tempdir):
+                os.makedirs(tempdir)
+    except:
+        print('Cache directory not found. Resetting Cache folder path.')
+        p = default_global_dict()
+        if p == user_preferences.global_dir:
+            print('Global dir was already default, plese set a global directory in addon preferences to a dir where you have write permissions.')
+            return None
+        user_preferences.global_dir = p
+        tempdir = get_temp_dir(subdir = subdir)
     return tempdir