diff --git a/saqc/core/reader.py b/saqc/core/reader.py
index 5dba2d2d987d183e26e140f61775657fc61a4e60..82ac5fa21ecd8f2e7d72dd8354532cab3fe5441a 100644
--- a/saqc/core/reader.py
+++ b/saqc/core/reader.py
@@ -62,11 +62,16 @@ def _castRow(row: Dict[str, str]) -> Dict[str, Any]:
     out = {}
     keys = pd.Index(row.keys())
     for k, func in CONFIG_TYPES.items():
-        key = keys[keys.str.match(k)][0]
+        try:
+            key = keys[keys.str.match(k)][0]
+        except IndexError:
+            continue
         value = row[key]
+        # NOTE:
+        # this check and the raise should be moved to checkConfig
         try:
             out[key] = func(value)
-        except:
+        except ValueError:
             _raise(row, ValueError, f"invalid value: '{value}'")
     return out