diff --git a/src/rtnetlink_server.cpp b/src/rtnetlink_server.cpp
index d226efa..4645367 100644
--- a/src/rtnetlink_server.cpp
+++ b/src/rtnetlink_server.cpp
@@ -135,26 +135,34 @@
     {
         refreshObjectTimer->restartOnce(refreshTimeout);
     }
-    switch (hdr.nlmsg_type)
+    try
     {
-        case RTM_NEWROUTE:
-            rthandler(m, true, data);
-            break;
-        case RTM_DELROUTE:
-            rthandler(m, false, data);
-            break;
-        case RTM_NEWADDR:
-            addrhandler(m, true, data);
-            break;
-        case RTM_DELADDR:
-            addrhandler(m, false, data);
-            break;
-        case RTM_NEWNEIGH:
-            neighhandler(m, true, data);
-            break;
-        case RTM_DELNEIGH:
-            neighhandler(m, false, data);
-            break;
+        switch (hdr.nlmsg_type)
+        {
+            case RTM_NEWROUTE:
+                rthandler(m, true, data);
+                break;
+            case RTM_DELROUTE:
+                rthandler(m, false, data);
+                break;
+            case RTM_NEWADDR:
+                addrhandler(m, true, data);
+                break;
+            case RTM_DELADDR:
+                addrhandler(m, false, data);
+                break;
+            case RTM_NEWNEIGH:
+                neighhandler(m, true, data);
+                break;
+            case RTM_DELNEIGH:
+                neighhandler(m, false, data);
+                break;
+        }
+    }
+    catch (const std::exception& e)
+    {
+        auto msg = fmt::format("Failed parsing netlink event: {}", e.what());
+        log<level::ERR>(msg.c_str());
     }
 }
 
diff --git a/src/system_queries.cpp b/src/system_queries.cpp
index 35dfa10..5006095 100644
--- a/src/system_queries.cpp
+++ b/src/system_queries.cpp
@@ -249,10 +249,18 @@
 {
     std::vector<InterfaceInfo> ret;
     auto cb = [&](const nlmsghdr& hdr, std::string_view msg) {
-        auto info = detail::parseInterface(hdr, msg);
-        if (detail::validateNewInterface(info))
+        try
         {
-            ret.emplace_back(std::move(info));
+            auto info = detail::parseInterface(hdr, msg);
+            if (detail::validateNewInterface(info))
+            {
+                ret.emplace_back(std::move(info));
+            }
+        }
+        catch (const std::exception& e)
+        {
+            auto msg = fmt::format("Failed parsing interface: {}", e.what());
+            log<level::ERR>(msg.c_str());
         }
     };
     ifinfomsg msg{};
@@ -264,10 +272,19 @@
 {
     std::vector<AddressInfo> ret;
     auto cb = [&](const nlmsghdr&, std::string_view msg) {
-        auto info = netlink::addrFromRtm(msg);
-        if (detail::validateNewAddr(info, filter))
+        try
         {
-            ret.emplace_back(std::move(info));
+            auto info = netlink::addrFromRtm(msg);
+            if (detail::validateNewAddr(info, filter))
+            {
+                ret.emplace_back(std::move(info));
+            }
+        }
+        catch (const std::exception& e)
+        {
+            auto msg = fmt::format("Failed parsing address for ifidx {}: {}",
+                                   filter.ifidx, e.what());
+            log<level::ERR>(msg.c_str());
         }
     };
     ifaddrmsg msg{};
@@ -280,10 +297,19 @@
 {
     std::vector<NeighborInfo> ret;
     auto cb = [&](const nlmsghdr&, std::string_view msg) {
-        auto info = netlink::neighFromRtm(msg);
-        if (detail::validateNewNeigh(info, filter))
+        try
         {
-            ret.push_back(std::move(info));
+            auto info = netlink::neighFromRtm(msg);
+            if (detail::validateNewNeigh(info, filter))
+            {
+                ret.push_back(std::move(info));
+            }
+        }
+        catch (const std::exception& e)
+        {
+            auto msg = fmt::format("Failed parsing neighbor for ifidx {}: {}",
+                                   filter.ifidx, e.what());
+            log<level::ERR>(msg.c_str());
         }
     };
     ndmsg msg{};
