diff --git a/custom-openstack-exporter.py b/custom-openstack-exporter.py
index cb0e1fe9117bb0f65fa0d98dc292a4091d8c1230..b30e08d1025ed014e4f2deee0a27b1c7b865690c 100755
--- a/custom-openstack-exporter.py
+++ b/custom-openstack-exporter.py
@@ -22,6 +22,7 @@ from prometheus_client import start_http_server, Gauge, REGISTRY, PROCESS_COLLEC
 from ping3 import ping
 import openstack
 from icmplib import traceroute
+import keystoneauth1.exceptions.catalog as ks_exc
 
 import timeout
 
@@ -346,55 +347,58 @@ class AppMetrics:
         # remove all statuses (clears delete loadbalancers)
         self.openstack_loadbalancer_status.clear()
         # Reports LBs inaccessible via FIP
-        for lb in self.os_connection.load_balancer.load_balancers():
-            if lb.is_admin_state_up:
-                # catch partly created loadbalancers
-                ip_address = None
-                ports = []
-                try:
-                    vip_port = self.os_connection.network.find_port(lb.vip_port_id)
-                    sg = self.os_connection.network.find_security_group(vip_port.security_group_ids[0])
-                    sg_rules = sg.security_group_rules
-                    fips = list(self.os_connection.network.ips(port_id=lb.vip_port_id))
-                    ip_address = ipaddress.ip_address(lb.vip_address)
-                    if fips:
-                        ip_address = ipaddress.ip_address(fips[0].floating_ip_address)
-
-                    logging.debug(str(ip_address) + " | Loadbalancer security group: " + str(sg))
-
-                    # ip address from private scopes, hidden from script
-                    if ip_address.is_private:
+        try:
+            for lb in self.os_connection.load_balancer.load_balancers():
+                if lb.is_admin_state_up:
+                    # catch partly created loadbalancers
+                    ip_address = None
+                    ports = []
+                    try:
+                        vip_port = self.os_connection.network.find_port(lb.vip_port_id)
+                        sg = self.os_connection.network.find_security_group(vip_port.security_group_ids[0])
+                        sg_rules = sg.security_group_rules
+                        fips = list(self.os_connection.network.ips(port_id=lb.vip_port_id))
+                        ip_address = ipaddress.ip_address(lb.vip_address)
+                        if fips:
+                            ip_address = ipaddress.ip_address(fips[0].floating_ip_address)
+
+                        logging.debug(str(ip_address) + " | Loadbalancer security group: " + str(sg))
+
+                        # ip address from private scopes, hidden from script
+                        if ip_address.is_private:
+                            self.openstack_loadbalancer_status.labels(
+                                id=lb.id,
+                                status=IPAddressStatus.HIDDEN.value
+                            ).set(1.0)
+                            continue
+                        # check opened ports in health monitor range (1025+)
+                        for sg_rule in sg_rules:
+                            ports.append(sg_rule.get('port_range_min') or 0)
+                        # add manually if missing - kypo fix
+                        if not AppMetrics.loadbalancer_accessibility_ports[0] in ports:
+                            ports.append(AppMetrics.loadbalancer_accessibility_ports[0])
+
+                        logging.info(str(ip_address) + " | Loadbalancer ports: " + str(ports))
+
+                    except Exception:
                         self.openstack_loadbalancer_status.labels(
                             id=lb.id,
-                            status=IPAddressStatus.HIDDEN.value
+                            status=IPAddressStatus.UNREACHABLE.value
                         ).set(1.0)
                         continue
-                    # check opened ports in health monitor range (1025+)
-                    for sg_rule in sg_rules:
-                        ports.append(sg_rule.get('port_range_min') or 0)
-                    # add manually if missing - kypo fix
-                    if not AppMetrics.loadbalancer_accessibility_ports[0] in ports:
-                        ports.append(AppMetrics.loadbalancer_accessibility_ports[0])
-
-                    logging.info(str(ip_address) + " | Loadbalancer ports: " + str(ports))
-
-                except Exception:
-                    self.openstack_loadbalancer_status.labels(
-                        id=lb.id,
-                        status=IPAddressStatus.UNREACHABLE.value
-                    ).set(1.0)
-                    continue
-                lb_status = self.get_ip_accessibility_status_ports(
-                    ip_address,
-                    [port for port in ports if port in AppMetrics.loadbalancer_accessibility_ports]
-                )
-                if lb_status == IPAddressStatus.UNREACHABLE.value:
-                    ping_status = self.get_ip_accessibility_status_ping(ip_address)
-                    logging.info(str(ip_address) + " | Loadbalancer, ports unreachable, pinged with status: " + str(ping_status))
-                    if ping_status:
-                        lb_status = ping_status
-                logging.info(str(ip_address) + " | LB id: " + str(lb.id) + ", status: " + str(lb_status))
-                self.openstack_loadbalancer_status.labels(id=lb.id, status=lb_status).set(1.0)
+                    lb_status = self.get_ip_accessibility_status_ports(
+                        ip_address,
+                        [port for port in ports if port in AppMetrics.loadbalancer_accessibility_ports]
+                    )
+                    if lb_status == IPAddressStatus.UNREACHABLE.value:
+                        ping_status = self.get_ip_accessibility_status_ping(ip_address)
+                        logging.info(str(ip_address) + " | Loadbalancer, ports unreachable, pinged with status: " + str(ping_status))
+                        if ping_status:
+                            lb_status = ping_status
+                    logging.info(str(ip_address) + " | LB id: " + str(lb.id) + ", status: " + str(lb_status))
+                    self.openstack_loadbalancer_status.labels(id=lb.id, status=lb_status).set(1.0)
+        except ks_exc.EndpointNotFound:
+            logging.info("Loadbalancer endpoint not found. Skipping loadbalancer checks...")
 
 def parse_arguments(script_summary="script"):
     """ argument parser """