diff --git a/scripts/hiddenapi/verify_overlaps.py b/scripts/hiddenapi/verify_overlaps.py
index a4a423e..6432bf1 100755
--- a/scripts/hiddenapi/verify_overlaps.py
+++ b/scripts/hiddenapi/verify_overlaps.py
@@ -331,8 +331,11 @@
     for signature in allSignatures:
         monolithicRow = monolithicFlagsDict.get(signature, {})
         monolithicFlags = monolithicRow.get(None, [])
-        modularRow = modularFlagsDict.get(signature, {})
-        modularFlags = modularRow.get(None, [])
+        if signature in modularFlagsDict:
+            modularRow = modularFlagsDict.get(signature, {})
+            modularFlags = modularRow.get(None, [])
+        else:
+            modularFlags = ["blocked"]
         if monolithicFlags != modularFlags:
             mismatchingSignatures.append((signature, modularFlags, monolithicFlags))
     return mismatchingSignatures
diff --git a/scripts/hiddenapi/verify_overlaps_test.py b/scripts/hiddenapi/verify_overlaps_test.py
index 7477254..00c0611 100755
--- a/scripts/hiddenapi/verify_overlaps_test.py
+++ b/scripts/hiddenapi/verify_overlaps_test.py
@@ -298,7 +298,7 @@
         ]
         self.assertEqual(expected, mismatches)
 
-    def test_missing_from_monolithic(self):
+    def test_match_treat_missing_from_modular_as_blocked(self):
         monolithic = self.read_signature_csv_from_string_as_dict('')
         modular = self.read_signature_csv_from_string_as_dict('''
 Ljava/lang/Object;->toString()Ljava/lang/String;,public-api,system-api,test-api
@@ -313,7 +313,7 @@
         ]
         self.assertEqual(expected, mismatches)
 
-    def test_missing_from_modular(self):
+    def test_mismatch_treat_missing_from_modular_as_blocked(self):
         monolithic = self.read_signature_csv_from_string_as_dict('''
 Ljava/lang/Object;->hashCode()I,public-api,system-api,test-api
 ''')
@@ -322,7 +322,7 @@
         expected = [
             (
                 'Ljava/lang/Object;->hashCode()I',
-                [],
+                ['blocked'],
                 ['public-api', 'system-api', 'test-api'],
             ),
         ]
@@ -334,13 +334,7 @@
 ''')
         modular = {}
         mismatches = compare_signature_flags(monolithic, modular)
-        expected = [
-            (
-                'Ljava/lang/Object;->hashCode()I',
-                [],
-                ['blocked'],
-            ),
-        ]
+        expected = []
         self.assertEqual(expected, mismatches)
 
 if __name__ == '__main__':
