diff --git a/update_checker.py b/update_checker.py
index ce973c99fc362670ecf71e74319ff1dca52c9bdd..7bea2736b413551e71e3323e14ebb3b457e6ba7b 100755
--- a/update_checker.py
+++ b/update_checker.py
@@ -38,6 +38,10 @@ def ipv62mac(ipv6):
 
     return ":".join(macParts)
 
+class LogRecordParseError(Exception):
+    def __init__(self, record_line):
+        self.record_line = record_line
+
 class LogRecord:
     def __init__(self,record):
         record = record.replace("%2B","+")
@@ -46,9 +50,7 @@ class LogRecord:
         try:
             groups = result.groups()
         except:
-            print(record)
-            print("error parsing record")
-            sys.exit(1)
+            raise LogRecordParseError(record)
         self.ipv6 = groups[0]
         self.date = groups[1]
         self.branch = groups[2]
@@ -94,7 +96,12 @@ if not os.path.isfile(nodesdbFilename):
 data = json.load(open(nodesdbFilename))
 
 for download in allFirmwareDownloads:
-    r = LogRecord(download)
+    try:
+        r = LogRecord(download)
+    except LogRecordParseError as e:
+        print("error parsing line, skipping: {}".format(e.record_line))
+        continue
+
     mac = ipv62mac(r.ipv6)
 
     if mac in data: