diff --git a/client/src/main/java/dev/fitko/fitconnect/client/subscriber/SubmissionReceiver.java b/client/src/main/java/dev/fitko/fitconnect/client/subscriber/SubmissionReceiver.java
index e7703c9613cd93a5b37785bc5910774ef6b8edc0..29cf52d81b1d3c38db8d2d91e9c89505489cd4ea 100644
--- a/client/src/main/java/dev/fitko/fitconnect/client/subscriber/SubmissionReceiver.java
+++ b/client/src/main/java/dev/fitko/fitconnect/client/subscriber/SubmissionReceiver.java
@@ -120,23 +120,23 @@ public class SubmissionReceiver {
 
     private void validateMetadata(final Metadata metadata, final Submission submission, final AuthenticationTags authenticationTags) {
         final ValidationResult validationResult = subscriber.validateMetadata(metadata, submission, authenticationTags);
-        evaluateValidationResult(submission, validationResult, "Metadata is invalid");
+        evaluateValidationResult(submission, validationResult);
     }
 
     private void validateAttachments(final List<AttachmentForValidation> attachmentForValidation, final Submission submission, final AuthenticationTags authenticationTags) {
         final ValidationResult validationResult = subscriber.validateAttachments(attachmentForValidation, authenticationTags);
-        evaluateValidationResult(submission, validationResult, "Attachment validation failed");
+        evaluateValidationResult(submission, validationResult);
     }
 
     private void validateData(final Submission submission, final Metadata metadata, final byte[] decryptedData, final AuthenticationTags authenticationTags) {
         final ValidationResult validationResult = subscriber.validateData(decryptedData, submission, metadata, authenticationTags);
-        evaluateValidationResult(submission, validationResult, "Data is invalid");
+        evaluateValidationResult(submission, validationResult);
     }
 
-    private void evaluateValidationResult(final Submission submission, final ValidationResult validationResult, final String errorMessage) throws SubmissionRequestException {
+    private void evaluateValidationResult(final Submission submission, final ValidationResult validationResult) throws SubmissionRequestException {
         if (validationResult.hasProblems()) {
             rejectSubmissionWithProblem(submission, validationResult.getProblems().toArray(new Problem[0]));
-            throw new SubmissionRequestException(validationResult.hasError() ? validationResult.getError().getMessage() : errorMessage);
+            throw new SubmissionRequestException(validationResult.getProblems().stream().map(Problem::getDetail).collect(Collectors.joining()));
         } else if (validationResult.hasError()) {
             LOGGER.error(validationResult.getError().getMessage(), validationResult.getError());
             throw new SubmissionRequestException(validationResult.getError().getMessage(), validationResult.getError());