diff --git a/brian_dashboard_manager/grafana/folder.py b/brian_dashboard_manager/grafana/folder.py
index a67945eb30a8d64a323683b7ea39048903d5642b..5343768262c423fe06b36ed4160bc3f5f58447c6 100644
--- a/brian_dashboard_manager/grafana/folder.py
+++ b/brian_dashboard_manager/grafana/folder.py
@@ -19,13 +19,24 @@ def delete_folder(request: TokenRequest, title=None, uid=None):
     :return: True if folder is considered deleted, False otherwise
     """
     if uid:
-        r = request.delete(f'api/folders/{uid}').json()
+        try:
+            r = request.delete(f'api/folders/{uid}').json()
+        except HTTPError:
+            logger.exception(f'Error when deleting folder: {uid}')
+            return False
         return r is not None
     else:
         folder = find_folder(request, title, False)
+
         if folder is None:
             return True
-        r = request.delete(f'api/folders/{folder.get("uid")}').json()
+        try:
+            r = request.delete(f'api/folders/{folder.get("uid")}')
+            r = r.json()
+        except HTTPError:
+            logger.exception(f'Error when deleting folder: {title}')
+            return False
+
         logger.info(f'Deleted folder: {title}')
         return r is not None
 
@@ -48,8 +59,10 @@ def find_folder(request: TokenRequest, title, create=True):
         folder = None
 
     if not folder and create:
-        logger.info(f'Created folder: {title}')
         folder = create_folder(request, title)
+        if not folder:
+            return None
+        logger.info(f'Created folder: {title}')
     return folder
 
 
@@ -61,7 +74,14 @@ def get_folders(request: TokenRequest):
     :param request: TokenRequest object
     :return: list of folder definitions
     """
-    return request.get('api/folders').json()
+    try:
+        r = request.get('api/folders')
+        folders = r.json()
+    except HTTPError:
+        logger.exception('Error when getting Grafana folders:')
+        return []
+
+    return folders
 
 
 def create_folder(request: TokenRequest, title):
diff --git a/brian_dashboard_manager/grafana/provision.py b/brian_dashboard_manager/grafana/provision.py
index 3d71d8722b188566c7535158ee363a4e1d19dc9b..ad1f3c8653b629291c5d9241fa03312c0a752197 100644
--- a/brian_dashboard_manager/grafana/provision.py
+++ b/brian_dashboard_manager/grafana/provision.py
@@ -478,6 +478,8 @@ def _provision_gws_direct(config, org_config, ds_name, token):
         delete_folder(token, title=folder_name)
     else:
         folder = find_folder(token, folder_name)
+        if not folder:
+            logger.error(f'Folder {folder_name} not found')
         with ThreadPoolExecutor(max_workers=MAX_WORKERS) as executor:
             gws_data = get_gws_direct(config['inventory_provider'])
             provisioned = []
diff --git a/brian_dashboard_manager/services/api.py b/brian_dashboard_manager/services/api.py
index fbefac477b8e208250db42e7431ab28efdbb724e..734819db09d28ec8b69890439b764860cf4bb6e9 100644
--- a/brian_dashboard_manager/services/api.py
+++ b/brian_dashboard_manager/services/api.py
@@ -1,11 +1,18 @@
+import logging
 import requests
 
+logger = logging.getLogger(__name__)
+
 
 def fetch_services(host):
     """
     Fetches the current service state from the Reporting Provider host
     """
-    r = requests.get(f'{host}/scid/current')
-    r.raise_for_status()
-    services = r.json()
+    try:
+        r = requests.get(f'{host}/scid/current')
+        r.raise_for_status()
+        services = r.json()
+    except requests.exceptions.HTTPError:
+        logger.exception('Error when fetching services:')
+        services = []
     return services