diff --git a/inventory_provider/routes/poller.py b/inventory_provider/routes/poller.py
index 284e7b711a5ac87c7600a80335409bf3fbf5ddce..b022ecc1a9c61c5c74136dbd4ed3d53f338d56d9 100644
--- a/inventory_provider/routes/poller.py
+++ b/inventory_provider/routes/poller.py
@@ -931,17 +931,18 @@ def load_error_report_interfaces(
     netdash_equipment = get_netdash_equipment(config, use_next_redis)
 
     def filter_interface(interface: dict):
-        return all(
-                (
-                    "phy" in interface["description"].lower(),
-                    "spare" not in interface["description"].lower(),
-                    "non-operational" not in interface["description"].lower(),
-                    "reserved" not in interface["description"].lower(),
-                    "test" not in interface["description"].lower(),
-                    "dsc." not in interface["name"].lower(),
-                    "fxp" not in interface["name"].lower(),
-                )
-            )
+        description = interface["description"].lower()
+        name = interface["name"].lower()
+        return (
+            "phy" in description
+            and "spare" not in description
+            and "non-operational" not in description
+            and "reserved" not in description
+            and "test" not in description
+            and "dsc." not in name
+            and "fxp" not in name
+            and not re.match(r".*\.\d+$", name)
+        )
 
     def transform_interface(interface: dict) -> Dict:
         return {
diff --git a/test/test_general_poller_routes.py b/test/test_general_poller_routes.py
index da419f00736abf6ae444266a8b6575bdc06161cc..9174d91e1059383ba1eb5327cd560823513828ea 100644
--- a/test/test_general_poller_routes.py
+++ b/test/test_general_poller_routes.py
@@ -511,6 +511,10 @@ def test_get_all_error_report_interfaces(client):
     response_routers = {ifc['router'] for ifc in response_data}
     assert len(response_routers) > 1, 'there should data from be lots of routers'
 
+def test_error_report_interfaces_has_no_logical_interfaces(client):
+    rv = client.get("/poller/error-report-interfaces", headers=DEFAULT_REQUEST_HEADERS)
+    assert not [i["name"] for i in rv.json if i["name"].endswith(".1")]
+
 
 def test_get_single_router_error_report_interfaces(client):
     rv = client.get(
diff --git a/test/test_worker.py b/test/test_worker.py
index 3fd325ca7e5b5e657a5f0cc007e6881d66be6c18..8dbd8767fb36a6d661ca38e287f956c43c021135 100644
--- a/test/test_worker.py
+++ b/test/test_worker.py
@@ -992,7 +992,7 @@ def test_populate_error_report_interfaces_cache(mocker, data_config, mocked_redi
         },
         {
             "router": "rt0.geant.net",
-            "name": "lag-1.0",
+            "name": "lag-1",
             "bundle": ["ae_c"],
             "bundle-parents": [],
             "description": "PHY DESCRIPTION D",
@@ -1035,12 +1035,6 @@ def test_populate_error_report_interfaces_cache(mocker, data_config, mocked_redi
             "description": "PHY DESCRIPTION B",
             "vendor": "juniper"
         },
-        {
-            "router": "router_a.geant.net",
-            "name": "ae_a.123",
-            "description": "PHY DESCRIPTION C",
-            "vendor": "juniper"
-        },
         {
             "router": "router_a.geant.net",
             "name": "interface_a",
@@ -1051,7 +1045,7 @@ def test_populate_error_report_interfaces_cache(mocker, data_config, mocked_redi
     exp_nokia_router_interfaces = [
         {
             "router": "rt0.geant.net",
-            "name": "lag-1.0",
+            "name": "lag-1",
             "description": "PHY DESCRIPTION D",
             "vendor": "nokia"
         }