diff --git a/libfprint/drivers/virtual-device-storage.c b/libfprint/drivers/virtual-device-storage.c
index 85e35ac..0f5a4b3 100644
--- a/libfprint/drivers/virtual-device-storage.c
+++ b/libfprint/drivers/virtual-device-storage.c
@@ -67,12 +67,17 @@ dev_identify (FpDevice *dev)
                                              new_scan,
                                              (GEqualFunc) fp_print_equal,
                                              NULL))
-        error = fpi_device_error_new (FP_DEVICE_ERROR_DATA_NOT_FOUND);
+        {
+          match = FALSE;
+          g_clear_object (&new_scan);
+        }
       else if (g_ptr_array_find_with_equal_func (prints,
                                                  new_scan,
                                                  (GEqualFunc) fp_print_equal,
                                                  &idx))
-        match = g_ptr_array_index (prints, idx);
+        {
+          match = g_ptr_array_index (prints, idx);
+        }
 
       if (!self->match_reported)
         {
diff --git a/libfprint/drivers/virtual-device.c b/libfprint/drivers/virtual-device.c
index a9efb39..d21d94b 100644
--- a/libfprint/drivers/virtual-device.c
+++ b/libfprint/drivers/virtual-device.c
@@ -543,7 +543,7 @@ dev_verify (FpDevice *dev)
 
       if (self->prints_storage && !g_hash_table_contains (self->prints_storage, scan_id))
         {
-          error = fpi_device_error_new (FP_DEVICE_ERROR_DATA_NOT_FOUND);
+          g_clear_object (&new_scan);
           success = FALSE;
         }
       else
diff --git a/tests/virtual-device.py b/tests/virtual-device.py
index 0a4e7dd..e15b432 100644
--- a/tests/virtual-device.py
+++ b/tests/virtual-device.py
@@ -322,7 +322,7 @@ class VirtualDeviceBase(unittest.TestCase):
             else:
                 self.assertFalse(match)
 
-        if isinstance(scan_nick, str):
+        if isinstance(scan_nick, str) and not self.dev.has_storage():
             self.assertEqual(self._verify_fp.props.fpi_data.get_string(), scan_nick)
 
 
@@ -470,15 +470,8 @@ class VirtualDevice(VirtualDeviceBase):
     def test_enroll_verify_no_match(self):
         matching = self.enroll_print('testprint', FPrint.Finger.LEFT_RING)
 
-        if self.dev.has_storage():
-            with self.assertRaises(GLib.Error) as error:
-                self.check_verify(matching, 'not-testprint', match=False,
-                    identify=self.dev.supports_identify())
-            self.assertTrue(error.exception.matches(FPrint.DeviceError.quark(),
-                                                    FPrint.DeviceError.DATA_NOT_FOUND))
-        else:
-            self.check_verify(matching, 'not-testprint', match=False,
-                identify=self.dev.supports_identify())
+        self.check_verify(matching, 'not-testprint', match=False,
+            identify=self.dev.supports_identify())
 
     def test_enroll_verify_error(self):
         matching = self.enroll_print('testprint', FPrint.Finger.LEFT_RING)
@@ -597,14 +590,11 @@ class VirtualDevice(VirtualDeviceBase):
                                                 FPrint.DeviceRetry.TOO_SHORT))
 
         self.send_command('SCAN', 'another-id')
+        verify_match, verify_fp = self.dev.verify_sync(enrolled)
+        self.assertFalse(verify_match)
         if self.dev.has_storage():
-            with self.assertRaises(GLib.GError) as error:
-                self.dev.verify_sync(enrolled)
-            self.assertTrue(error.exception.matches(FPrint.DeviceError.quark(),
-                                                    FPrint.DeviceError.DATA_NOT_FOUND))
+            self.assertIsNone(verify_fp)
         else:
-            verify_match, verify_fp = self.dev.verify_sync(enrolled)
-            self.assertFalse(verify_match)
             self.assertFalse(verify_fp.equal(enrolled))
 
         self.send_auto(enrolled)
@@ -821,13 +811,7 @@ class VirtualDevice(VirtualDeviceBase):
         self.wait_timeout(10)
         self.assertFalse(self._verify_completed)
 
-        if self.dev.has_storage():
-            with self.assertRaises(GLib.Error) as error:
-                self.complete_verify()
-            self.assertTrue(error.exception.matches(FPrint.DeviceError.quark(),
-                                                    FPrint.DeviceError.DATA_NOT_FOUND))
-        else:
-            self.complete_verify()
+        self.complete_verify()
         self.assertTrue(self._verify_reported)
 
     def test_close_error(self):
@@ -1159,18 +1143,12 @@ class VirtualDeviceStorage(VirtualDevice):
                                                 FPrint.DeviceError.DATA_NOT_FOUND))
 
     def test_verify_missing_print(self):
-        with self.assertRaises(GLib.Error) as error:
-            self.check_verify(FPrint.Print.new(self.dev),
-                'not-existing-print', False, identify=False)
-        self.assertTrue(error.exception.matches(FPrint.DeviceError.quark(),
-                                                FPrint.DeviceError.DATA_NOT_FOUND))
+        self.check_verify(FPrint.Print.new(self.dev),
+            'not-existing-print', False, identify=False)
 
     def test_identify_missing_print(self):
-        with self.assertRaises(GLib.Error) as error:
-            self.check_verify(FPrint.Print.new(self.dev),
-                              'not-existing-print', False, identify=True)
-        self.assertTrue(error.exception.matches(FPrint.DeviceError.quark(),
-                                                FPrint.DeviceError.DATA_NOT_FOUND))
+        self.check_verify(FPrint.Print.new(self.dev),
+                          'not-existing-print', False, identify=True)
 
 
 if __name__ == '__main__':