diff --git a/inventory_provider/tasks/worker.py b/inventory_provider/tasks/worker.py
index a744560bad39cc8a69199a520008c2ad1788ebff..b321d5957f4ea66e08a45c1e9f9777581f163699 100644
--- a/inventory_provider/tasks/worker.py
+++ b/inventory_provider/tasks/worker.py
@@ -606,7 +606,13 @@ def _build_service_interface_user_list():
         r = get_next_redis(InventoryTask.config)
         for k in r.scan_iter('opsdb:interface_services:*'):
             k = k.decode('utf-8')
-            (_, _, router, ifc_name) = k.split(':')
+            fields = k.split(':')
+            if len(fields) < 4:
+                # there are some strange records
+                # e.g. TS1.*, ts1.*, dp1.*, dtn*, ...
+                continue
+            router = fields[2]
+            ifc_name = fields[3]
 
             router_interface_key = f'{router}:{ifc_name}'
             if router_interface_key not in wanted_interfaces: