diff --git a/FitConnect/Subscriber.cs b/FitConnect/Subscriber.cs
index a596d0c29b54d9545cf663a96792afee53651c78..e37a5c4d395c97ba3aab6bad1e5f65eda920dd89 100644
--- a/FitConnect/Subscriber.cs
+++ b/FitConnect/Subscriber.cs
@@ -80,6 +80,8 @@ public class Subscriber : FitConnectClient,
             if (!valid) {
                 Logger?.LogWarning("Invalid metadata: {MetaData}", metaDataString);
 
+                // TODO: Check if problem is correct
+                RejectSubmission(submission, Problems.SchemaViolation);
                 throw new Exception("Metadata validation failed");
             }
         }
@@ -95,6 +97,9 @@ public class Subscriber : FitConnectClient,
                 Logger?.LogWarning("Data hash mismatch: {DataHash} != {CalculatedHash}",
                     submission.Metadata?.ContentStructure.Data.Hash.Content,
                     FitEncryption.CalculateHash(dataString));
+
+                // TODO: Check if problem is correct
+                RejectSubmission(submission, Problems.EncryptionIssue);
                 throw new Exception("Data hash mismatch");
             }
         }
@@ -137,6 +142,10 @@ public class Subscriber : FitConnectClient,
         CompleteSubmission(Submission!, FinishSubmissionStatus.Rejected, problems);
     }
 
+    private void RejectSubmission(Submission submission, params Problems[] problems) {
+        CompleteSubmission(submission, FinishSubmissionStatus.Rejected, problems);
+    }
+
 
     // public void ForwardSubmission() {
     //     CompleteSubmission(Submission!, FinishSubmissionStatus.Forwarded);