diff --git a/src/app/core/components/error/error.component.html b/src/app/core/components/error/error.component.html
index de4ea0d..82a26fa 100644
--- a/src/app/core/components/error/error.component.html
+++ b/src/app/core/components/error/error.component.html
@@ -11,7 +11,7 @@
 -->
 <p-toast class="mt-5" baseZIndex="1060"></p-toast>
 <p *ngIf="errorMessage">
-  <ngb-alert [dismissible]="false" type="danger">
-    <strong>Fehler {{errorMessage.httpStatus}}:</strong> {{errorMessage.message}}
+  <ngb-alert [dismissible]="false" type="danger" *ngFor="let error of errorMessage">
+    <strong>Fehler {{error.httpStatus}}:</strong> {{error.message}}
   </ngb-alert>
 </p>
\ No newline at end of file
diff --git a/src/app/core/components/error/error.component.ts b/src/app/core/components/error/error.component.ts
index 28cce22..4e0e61a 100644
--- a/src/app/core/components/error/error.component.ts
+++ b/src/app/core/components/error/error.component.ts
@@ -19,7 +19,7 @@
   styleUrls: ['./error.component.scss']
 })
 export class ErrorComponent implements OnInit {
-  errorMessage: ErrorObject;
+  errorMessage: ErrorObject[];
   constructor(
     public utilService: UtilService,
     private ref: ChangeDetectorRef,
diff --git a/src/app/core/interceptors/error.interceptor.ts b/src/app/core/interceptors/error.interceptor.ts
index ffb623e..8b23952 100644
--- a/src/app/core/interceptors/error.interceptor.ts
+++ b/src/app/core/interceptors/error.interceptor.ts
@@ -8,37 +8,47 @@
  * SPDX-License-Identifier: EPL-2.0
  ********************************************************************************/
 import { Injectable, ErrorHandler, Injector } from '@angular/core';
+import { HttpErrorResponse } from '@angular/common/http';
+
+import { MessageService } from 'primeng/components/common/messageservice';
+
 import { UtilService } from '@core/services/util.service';
 import { ErrorObject } from '@shared/model/ErrorObject';
-import { HttpErrorResponse } from '@angular/common/http';
 
 @Injectable()
 export class ErrorInterceptor implements ErrorHandler {
 
   constructor(
-    private injector: Injector
+    private injector: Injector,
+    private messageService: MessageService
   ) { }
 
 
   handleError(httpErrorResponse: HttpErrorResponse) {
     const utilService = this.injector.get(UtilService);
-
-    let errorMessage: ErrorObject = {
-      httpStatus: httpErrorResponse.error.httpStatus,
-      message: httpErrorResponse.error.message,
-      localizedMessage: httpErrorResponse.error.localizedMessage
-    };
-    if (errorMessage.httpStatus === undefined) {
-      errorMessage.httpStatus = httpErrorResponse.status;
-      errorMessage.message = httpErrorResponse.statusText;
-      errorMessage.localizedMessage = httpErrorResponse.statusText;
-    }
-
-
-    const encodedString = String.fromCharCode.apply(null, new Uint8Array(httpErrorResponse.error));
-    const decodedString = decodeURIComponent(escape(encodedString));
-    if (decodedString) {
-      errorMessage = JSON.parse(decodedString);
+    let errorMessage: ErrorObject[];
+    if (Array.isArray(httpErrorResponse.error)) { // should be any kind of validation error
+      httpErrorResponse.error.forEach(error => {
+        error.httpStatus = httpErrorResponse.status;
+      });
+      errorMessage = httpErrorResponse.error;
+    } else if (httpErrorResponse.error.byteLength !== undefined) { // reports error
+      const encodedString = String.fromCharCode.apply(null, new Uint8Array(httpErrorResponse.error));
+      const decodedString = decodeURIComponent(escape(encodedString));
+      if (decodedString) {
+        errorMessage = [JSON.parse(decodedString)];
+      }
+    } else { // any other error
+      errorMessage = [{
+        httpStatus: httpErrorResponse.error.httpStatus,
+        message: httpErrorResponse.error.message,
+        localizedMessage: httpErrorResponse.error.localizedMessage
+      }];
+      if (errorMessage[0].httpStatus === undefined) {
+        errorMessage[0].httpStatus = httpErrorResponse.status;
+        errorMessage[0].message = httpErrorResponse.statusText;
+        errorMessage[0].localizedMessage = httpErrorResponse.statusText;
+      }
     }
 
     utilService.throwError(errorMessage);
diff --git a/src/app/core/services/util.service.ts b/src/app/core/services/util.service.ts
index 70bd8f6..9ba13fc 100644
--- a/src/app/core/services/util.service.ts
+++ b/src/app/core/services/util.service.ts
@@ -18,7 +18,7 @@
   providedIn: 'root'
 })
 export class UtilService {
-  error$: Subject<ErrorObject> = new Subject();
+  error$: Subject<ErrorObject[]> = new Subject();
   loadingState$: BehaviorSubject<boolean> = new BehaviorSubject(false);
 
   constructor(
@@ -34,7 +34,7 @@
     }
   }
 
-  throwError(errorObject: ErrorObject) {
+  throwError(errorObject: ErrorObject[]) {
     this.error$.next(errorObject);
   }
 
diff --git a/src/app/masterdata-management/components/organisation/organisation.component.html b/src/app/masterdata-management/components/organisation/organisation.component.html
index 0505cc5..33d0596 100644
--- a/src/app/masterdata-management/components/organisation/organisation.component.html
+++ b/src/app/masterdata-management/components/organisation/organisation.component.html
@@ -108,21 +108,21 @@
             <div class="row">
               <div class="col-md-6">
                 <div class="form-group row">
-                  <label for="latitude" class="col-sm-3 col-form-label">WGS84 Koordinate 1 dienstl. (geolänge)</label>
+                  <label for="longitude" class="col-sm-3 col-form-label">WGS84 Koordinate 1 dienstl. (geolänge)</label>
                   <div class="col-sm-9">
-                    <input type="text" class="form-control" id="latitude" placeholder="latitude" formControlName="latitude"
+                    <input type="text" class="form-control" id="longitude" placeholder="longitude" formControlName="longitude"
                       required>
-                    <ok-error [control]="form.controls.address.controls['latitude']"></ok-error>
+                    <ok-error [control]="form.controls.address.controls['longitude']"></ok-error>
                   </div>
                 </div>
               </div>
               <div class="col-md-6">
                 <div class="form-group row">
-                  <label for="longitude" class="col-sm-3 col-form-label">WGS84 Koordinate 2 dienstl. (geobreite)</label>
+                  <label for="latitude" class="col-sm-3 col-form-label">WGS84 Koordinate 2 dienstl. (geobreite)</label>
                   <div class="col-sm-9">
-                    <input type="text" class="form-control" id="longitude" placeholder="longitude" formControlName="longitude"
+                    <input type="text" class="form-control" id="latitude" placeholder="latitude" formControlName="latitude"
                       required>
-                    <ok-error [control]="form.controls.address.controls['longitude']"></ok-error>
+                    <ok-error [control]="form.controls.address.controls['latitude']"></ok-error>
                   </div>
                 </div>
               </div>
diff --git a/src/app/masterdata-management/components/user/user.component.html b/src/app/masterdata-management/components/user/user.component.html
index 2ff0819..7261d09 100644
--- a/src/app/masterdata-management/components/user/user.component.html
+++ b/src/app/masterdata-management/components/user/user.component.html
@@ -224,17 +224,17 @@
               <div class="row">
                 <div class="col-md-6">
                   <div class="form-group row">
-                    <label for="latitude" class="col-sm-3 col-form-label">WGS84 Koordinate 1 dienstl. (geolänge)</label>
+                    <label for="longitude" class="col-sm-3 col-form-label">WGS84 Koordinate 1 dienstl. (geolänge)</label>
                     <div class="col-sm-9">
-                      <input type="text" class="form-control" id="latitude" formControlName="latitude" required>
+                      <input type="text" class="form-control" id="longitude" formControlName="longitude" required>
                     </div>
                   </div>
                 </div>
                 <div class="col-md-6">
                   <div class="form-group row">
-                    <label for="longitude" class="col-sm-3 col-form-label">WGS84 Koordinate 2 dienstl. (geobreite)</label>
+                    <label for="latitude" class="col-sm-3 col-form-label">WGS84 Koordinate 2 dienstl. (geobreite)</label>
                     <div class="col-sm-9">
-                      <input type="text" class="form-control" id="longitude" formControlName="longitude" required>
+                      <input type="text" class="form-control" id="latitude" formControlName="latitude" required>
                     </div>
                   </div>
                 </div>
diff --git a/src/app/reporting/components/standby-reporting/standby-reporting.component.ts b/src/app/reporting/components/standby-reporting/standby-reporting.component.ts
index 2d52a5b..1cf41bf 100644
--- a/src/app/reporting/components/standby-reporting/standby-reporting.component.ts
+++ b/src/app/reporting/components/standby-reporting/standby-reporting.component.ts
@@ -62,6 +62,7 @@
   generate() {
     if (FormUtil.validate(this.form)) {
       const formValue = this.form.getRawValue();
+      FormUtil.formatDates(formValue, ['validFrom', 'validTo']);
       const object = {
         validFrom: formValue.validFrom,
         validTo: formValue.validTo,
@@ -73,7 +74,6 @@
         object['standByListId'] = formValue['standById'];
       }
 
-      FormUtil.formatDates(object, ['validFrom', 'validTo']);
       this.reportingService.generateReport(object, formValue).subscribe(response => {
         let mimeType = '';
 
