diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py
index cb94623040cbb619b5c51a6e2f55b656704978ac..deb983a6e63506aac48ca3c74e783d6fc8c3d334 100644
--- a/inventory_provider/tasks/worker.py
+++ b/inventory_provider/tasks/worker.py
@@ -604,8 +604,16 @@ def update_circuit_hierarchy_and_port_id_services(self, use_current=False):
         s['logical_unit'] = ''  # this is redundant I believe
         if 'port_b_id' in s:
             pd_b = port_id_details[s['port_b_id']][0]
-            loc_b = locations[pd_b['equipment_name']]['pop']
-            s['other_end_pop_name'] = loc_a['name']
+            location_b = locations.get(pd_b['equipment_name'], None)
+            if location_b:
+                loc_b = location_b['pop']
+            else:
+                loc_b = locations['UNKNOWN_LOC']['pop']
+                logger.warning(
+                    f'Unable to find location for {pd_b["equipment_name"]} - '
+                    f'Service ID {s["id"]}')
+
+            s['other_end_pop_name'] = loc_b['name']
             s['other_end_pop_abbreviation'] = loc_b['abbreviation']
             s['other_end_equipment'] = pd_b['equipment_name']
             s['other_end_port'] = pd_b['interface_name']