diff --git a/inventory_provider/db/opsdb.py b/inventory_provider/db/opsdb.py
index 392f235962b121ad21e58514889925c74c46c9b1..092d34861c48b8c9c0df79d1b4946fa2ef4ecf07 100644
--- a/inventory_provider/db/opsdb.py
+++ b/inventory_provider/db/opsdb.py
@@ -129,7 +129,10 @@ retrieve_services_query = """SELECT *
                          AND pp_b.port = cc.port_b
                     WHERE c.status != 'terminated' AND is_circuit = 1)
                     AS inner_query
-                    WHERE circuit_type IN ('path', 'service', 'l2circuit')
+                    WHERE
+                        equipment IS NOT NULL
+                        AND equipment != ''
+                        AND circuit_type IN ('path', 'service', 'l2circuit')
                     ORDER BY
                     name,
                      FIELD(status,
diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py
index 045bef10e7c2cd8a641673c6b305e01b479ca0ae..a3fd3a270f9fe961e4880f4266c4baeb1a6eed38 100644
--- a/inventory_provider/tasks/worker.py
+++ b/inventory_provider/tasks/worker.py
@@ -448,6 +448,7 @@ def reload_router_config(self, hostname):
 
 
 def _derive_router_hostnames(config):
+    logger = logging.getLogger(__name__)
     r = get_redis(config)
     junosspace_equipment = set()
     for k in r.keys('junosspace:*'):
@@ -460,8 +461,11 @@ def _derive_router_hostnames(config):
         m = re.match(
             'opsdb:interface_services:([^:]+):.*$',
             k.decode('utf-8'))
-        opsdb_equipment.add(m.group(1))
-
+        if m:
+            opsdb_equipment.add(m.group(1))
+        else:
+            logger.info("Unable to derive router name from %s" %
+                        k.decode('utf-8'))
     return junosspace_equipment & opsdb_equipment