diff --git a/src/main/java/tracker/DataCaptureProxy.java b/src/main/java/tracker/DataCaptureProxy.java
index cb66feb..1749421 100644
--- a/src/main/java/tracker/DataCaptureProxy.java
+++ b/src/main/java/tracker/DataCaptureProxy.java
@@ -66,14 +66,22 @@
                     if (uploaded != null && !uploaded.isEmpty()) {
                         int uploadValue = Integer.parseInt(uploaded);
                         if (uploadValue > 0) {
-                            tracker.AddUpLoad(passkey, uploadValue, infoHash);
+                            try {
+                                tracker.AddUpLoad(passkey, uploadValue, infoHash);
+                            } catch (javax.persistence.NoResultException e) {
+                                System.out.println("Skipping upload update: info_hash not found in database - " + infoHash);
+                            }
                         }
                     }
                     
                     if (downloaded != null && !downloaded.isEmpty()) {
                         int downloadValue = Integer.parseInt(downloaded);
                         if (downloadValue > 0) {
-                            tracker.AddDownload(passkey, downloadValue, infoHash);
+                            try {
+                                tracker.AddDownload(passkey, downloadValue, infoHash);
+                            } catch (javax.persistence.NoResultException e) {
+                                System.out.println("Skipping download update: info_hash not found in database - " + infoHash);
+                            }
                         }
                     }
                 } catch (NumberFormatException e) {
