diff --git a/car/src/main/java/cz/muni/pa165/car/service/DriverManagerService.java b/car/src/main/java/cz/muni/pa165/car/service/DriverManagerService.java
index 44efb85a0e3d31512a158921c0566106f7e22eb3..8a80a740b72ec155d2971beef633ed59a73416e3 100644
--- a/car/src/main/java/cz/muni/pa165/car/service/DriverManagerService.java
+++ b/car/src/main/java/cz/muni/pa165/car/service/DriverManagerService.java
@@ -1,7 +1,7 @@
 package cz.muni.pa165.car.service;
 
 import cz.muni.pa165.car.data.repository.CarRepository;
-import cz.muni.pa165.common_library.exceptions.DatabaseException;
+import cz.muni.pa165.common_library.exception.DatabaseException;
 import cz.muni.pa165.common_library.racecomponents.Car;
 import org.springframework.stereotype.Service;
 
diff --git a/common_library/src/main/java/cz/muni/pa165/common_library/exceptions/DatabaseException.java b/common_library/src/main/java/cz/muni/pa165/common_library/exception/DatabaseException.java
similarity index 80%
rename from common_library/src/main/java/cz/muni/pa165/common_library/exceptions/DatabaseException.java
rename to common_library/src/main/java/cz/muni/pa165/common_library/exception/DatabaseException.java
index 227b9a113ce56809dcc7ce7deedac992f9729096..52a05fb33cacbb98e03f839213e38e097aa68dd5 100644
--- a/common_library/src/main/java/cz/muni/pa165/common_library/exceptions/DatabaseException.java
+++ b/common_library/src/main/java/cz/muni/pa165/common_library/exception/DatabaseException.java
@@ -1,4 +1,4 @@
-package cz.muni.pa165.common_library.exceptions;
+package cz.muni.pa165.common_library.exception;
 
 /**
  * Exception when a query does is not executed correctly.
diff --git a/common_library/src/main/java/cz/muni/pa165/common_library/ExError.java b/common_library/src/main/java/cz/muni/pa165/common_library/exception/ExError.java
similarity index 74%
rename from common_library/src/main/java/cz/muni/pa165/common_library/ExError.java
rename to common_library/src/main/java/cz/muni/pa165/common_library/exception/ExError.java
index ae15e2fdfa1f86937a43606cd79bc7547714d621..8a20ed8613573e0fc3ce255e612859c3eb9e3537 100644
--- a/common_library/src/main/java/cz/muni/pa165/common_library/ExError.java
+++ b/common_library/src/main/java/cz/muni/pa165/common_library/exception/ExError.java
@@ -1,4 +1,4 @@
-package cz.muni.pa165.common_library;
+package cz.muni.pa165.common_library.exception;
 
 import com.fasterxml.jackson.annotation.JsonFormat;
 import java.time.LocalDateTime;
@@ -7,7 +7,7 @@ import lombok.Getter;
 public class ExError {
 
   @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd hh:mm:ss")
-  private final LocalDateTime timestamp = LocalDateTime.now();
+  private final LocalDateTime dateTime = LocalDateTime.now();
 
   @Getter
   private final String message;
diff --git a/common_library/src/main/java/cz/muni/pa165/common_library/exceptions/ResourceNotFoundException.java b/common_library/src/main/java/cz/muni/pa165/common_library/exception/ResourceNotFoundException.java
similarity index 80%
rename from common_library/src/main/java/cz/muni/pa165/common_library/exceptions/ResourceNotFoundException.java
rename to common_library/src/main/java/cz/muni/pa165/common_library/exception/ResourceNotFoundException.java
index 84517c811e0a1362bf2b9f604e63b5f9137915a7..eaeb206f378b375c22c20ae431878d6ec5c698ff 100644
--- a/common_library/src/main/java/cz/muni/pa165/common_library/exceptions/ResourceNotFoundException.java
+++ b/common_library/src/main/java/cz/muni/pa165/common_library/exception/ResourceNotFoundException.java
@@ -1,4 +1,4 @@
-package cz.muni.pa165.common_library.exceptions;
+package cz.muni.pa165.common_library.exception;
 
 /**
  * Exception when resource does not exist.
diff --git a/common_library/src/main/java/cz/muni/pa165/common_library/exception/RestExceptionHandler.java b/common_library/src/main/java/cz/muni/pa165/common_library/exception/RestExceptionHandler.java
new file mode 100644
index 0000000000000000000000000000000000000000..620a094964c82e26eeaaa98927f09b357eb78392
--- /dev/null
+++ b/common_library/src/main/java/cz/muni/pa165/common_library/exception/RestExceptionHandler.java
@@ -0,0 +1,72 @@
+package cz.muni.pa165.common_library.exception;
+
+import jakarta.persistence.EntityNotFoundException;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.http.converter.HttpMessageNotReadableException;
+import org.springframework.validation.FieldError;
+import org.springframework.validation.ObjectError;
+import org.springframework.web.bind.MethodArgumentNotValidException;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.ResponseStatus;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+import org.springframework.web.servlet.NoHandlerFoundException;
+
+@RestControllerAdvice
+public class RestExceptionHandler {
+
+  @ExceptionHandler(EntityNotFoundException.class)
+  @ResponseStatus(HttpStatus.NOT_FOUND)
+  public ResponseEntity<ExError> handleEntityNotFoundException(EntityNotFoundException ex) {
+    System.out.println();
+    return new ResponseEntity<>(
+        new ExError(ex.getMessage()), new HttpHeaders(), HttpStatus.NOT_FOUND);
+  }
+
+  @ExceptionHandler(DatabaseException.class)
+  @ResponseStatus(HttpStatus.NOT_FOUND)
+  public ResponseEntity<ExError> handleDatabaseException(DatabaseException ex) {
+    return new ResponseEntity<>(
+        new ExError(ex.getMessage()), new HttpHeaders(), HttpStatus.NOT_FOUND);
+  }
+
+  @ExceptionHandler(NoHandlerFoundException.class)
+  @ResponseStatus(HttpStatus.NOT_FOUND)
+  public ResponseEntity<ExError> handleDatabaseException(NoHandlerFoundException ex) {
+    return new ResponseEntity<>(
+        new ExError(ex.getMessage()), new HttpHeaders(), HttpStatus.NOT_FOUND);
+  }
+
+  @ExceptionHandler(HttpMessageNotReadableException.class)
+  @ResponseStatus(HttpStatus.BAD_REQUEST)
+  public ResponseEntity<ExError> handleNotReadableException(HttpMessageNotReadableException ex) {
+    return new ResponseEntity<>(
+        new ExError(ex.getMessage()), new HttpHeaders(), HttpStatus.BAD_REQUEST);
+  }
+
+  @ExceptionHandler(MethodArgumentNotValidException.class)
+  @ResponseStatus(HttpStatus.BAD_REQUEST)
+  public ResponseEntity<ExError> handleNotReadableException(MethodArgumentNotValidException ex) {
+    String message = ex.getMessage();
+    try {
+
+      StringBuilder validtionMessage = new StringBuilder("Validation Errors: [");
+      var validationErrors = ex.getBindingResult().getAllErrors();
+      for (ObjectError error: validationErrors) {
+        var errorField = (FieldError) error;
+        var errorMessage = errorField.getDefaultMessage();
+        var fieldName =  errorField.getField();
+
+        validtionMessage.append(" field ").append(fieldName).append(": ").append(errorMessage).append(",");
+      }
+      validtionMessage.deleteCharAt(validtionMessage.length() - 1);
+      validtionMessage.append(" ]");
+      message = validtionMessage.toString();
+    } catch (Exception ignored) {
+
+    }
+    return new ResponseEntity<>(
+        new ExError(message), new HttpHeaders(), HttpStatus.BAD_REQUEST);
+  }
+}
diff --git a/driver/src/main/java/cz/muni/pa165/driver/service/DriverInitService.java b/driver/src/main/java/cz/muni/pa165/driver/service/DriverInitService.java
index d2ab9960c4d68a5033fefe5eac05b0d52c0f28fd..aa160b2f81ac365feb68fc251c242b6b2f2397f9 100644
--- a/driver/src/main/java/cz/muni/pa165/driver/service/DriverInitService.java
+++ b/driver/src/main/java/cz/muni/pa165/driver/service/DriverInitService.java
@@ -1,7 +1,7 @@
 package cz.muni.pa165.driver.service;
 
-import cz.muni.pa165.common_library.exceptions.DatabaseException;
-import cz.muni.pa165.common_library.exceptions.ResourceNotFoundException;
+import cz.muni.pa165.common_library.exception.DatabaseException;
+import cz.muni.pa165.common_library.exception.ResourceNotFoundException;
 import cz.muni.pa165.common_library.racecomponents.Driver;
 import cz.muni.pa165.driver.data.repository.DriverInitRepository;
 import org.springframework.stereotype.Service;
diff --git a/race/pom.xml b/race/pom.xml
index d167553f8e4ba2ab09b101a3a92bbd3ebb6a9693..b21225f237517e222b817d8ab73e74744237be96 100644
--- a/race/pom.xml
+++ b/race/pom.xml
@@ -48,11 +48,6 @@
             <artifactId>spring-boot-starter-data-jpa</artifactId>
             <version>3.0.2</version>
         </dependency>
-        <dependency>
-            <groupId>org.hsqldb</groupId>
-            <artifactId>hsqldb</artifactId>
-            <version>2.7.1</version>
-        </dependency>
     </dependencies>
     <properties>
         <maven.compiler.source>17</maven.compiler.source>
diff --git a/race/src/main/java/cz/muni/pa165/race/App.java b/race/src/main/java/cz/muni/pa165/race/App.java
index 65da526906811cb27d8293fea9b8db5f8b607087..531a3a26094f008f01b473cd641db90b528060b2 100644
--- a/race/src/main/java/cz/muni/pa165/race/App.java
+++ b/race/src/main/java/cz/muni/pa165/race/App.java
@@ -1,5 +1,6 @@
 package cz.muni.pa165.race;
 
+import cz.muni.pa165.common_library.exception.RestExceptionHandler;
 import cz.muni.pa165.common_library.racecomponents.Car;
 import cz.muni.pa165.common_library.racecomponents.Driver;
 import cz.muni.pa165.common_library.racecomponents.Season;
@@ -7,6 +8,7 @@ import cz.muni.pa165.common_library.racecomponents.Race;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
 import org.springframework.boot.autoconfigure.domain.EntityScan;
+import org.springframework.context.annotation.Import;
 import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 
@@ -17,6 +19,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
 @EnableJpaRepositories(basePackages = "cz.muni.pa165.race.data.repository")
 @EnableTransactionManagement
 @EntityScan(basePackageClasses = {Race.class, Season.class, Car.class, Driver.class})
+@Import(RestExceptionHandler.class)
 public class App {
 
   public static void main(String[] args) {
diff --git a/race/src/main/java/cz/muni/pa165/race/RestExceptionHandler.java b/race/src/main/java/cz/muni/pa165/race/RestExceptionHandler.java
deleted file mode 100644
index 98296c9cff0294f633a12405424e47fcef7d9c21..0000000000000000000000000000000000000000
--- a/race/src/main/java/cz/muni/pa165/race/RestExceptionHandler.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package cz.muni.pa165.race;
-
-import cz.muni.pa165.common_library.ExError;
-import cz.muni.pa165.common_library.exceptions.DatabaseException;
-import jakarta.persistence.EntityNotFoundException;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.HttpStatus;
-import org.springframework.http.ResponseEntity;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.bind.annotation.ResponseStatus;
-import org.springframework.web.bind.annotation.RestControllerAdvice;
-import org.springframework.web.servlet.NoHandlerFoundException;
-
-@RestControllerAdvice
-public class RestExceptionHandler {
-
-  @ExceptionHandler(EntityNotFoundException.class)
-  @ResponseStatus(HttpStatus.NOT_FOUND)
-  public ResponseEntity<ExError> handleEntityNotFoundException(EntityNotFoundException ex) {
-    System.out.println();
-    return new ResponseEntity<>(
-        new ExError(ex.getMessage()), new HttpHeaders(), HttpStatus.NOT_FOUND);
-  }
-
-  @ExceptionHandler(DatabaseException.class)
-  @ResponseStatus(HttpStatus.NOT_FOUND)
-  public ResponseEntity<ExError> handleDatabaseException(DatabaseException ex) {
-    return new ResponseEntity<>(
-        new ExError(ex.getMessage()), new HttpHeaders(), HttpStatus.NOT_FOUND);
-  }
-
-  @ExceptionHandler(NoHandlerFoundException.class)
-  @ResponseStatus(HttpStatus.NOT_FOUND)
-  public ResponseEntity<ExError> handleDatabaseException(NoHandlerFoundException ex) {
-    return new ResponseEntity<>(
-        new ExError(ex.getMessage()), new HttpHeaders(), HttpStatus.NOT_FOUND);
-  }
-}
diff --git a/race/src/main/java/cz/muni/pa165/race/service/RaceService.java b/race/src/main/java/cz/muni/pa165/race/service/RaceService.java
index b0ba6f8530067ce9f78e68b108430671dc83a646..8b89cf99eeebd8640c0d4933fdd839b01daa71a6 100644
--- a/race/src/main/java/cz/muni/pa165/race/service/RaceService.java
+++ b/race/src/main/java/cz/muni/pa165/race/service/RaceService.java
@@ -1,6 +1,6 @@
 package cz.muni.pa165.race.service;
 
-import cz.muni.pa165.common_library.exceptions.DatabaseException;
+import cz.muni.pa165.common_library.exception.DatabaseException;
 import cz.muni.pa165.common_library.racecomponents.Car;
 import cz.muni.pa165.common_library.racecomponents.Driver;
 import cz.muni.pa165.common_library.racecomponents.Race;
diff --git a/race/src/main/java/cz/muni/pa165/race/service/SeasonService.java b/race/src/main/java/cz/muni/pa165/race/service/SeasonService.java
index 7dec2821abd6e7b95584d920dd0ebf97796ea121..6e333f9040b5025bf800718923f801a95205f1b4 100644
--- a/race/src/main/java/cz/muni/pa165/race/service/SeasonService.java
+++ b/race/src/main/java/cz/muni/pa165/race/service/SeasonService.java
@@ -1,7 +1,7 @@
 package cz.muni.pa165.race.service;
 
 import cz.muni.pa165.common_library.racecomponents.Season;
-import cz.muni.pa165.common_library.exceptions.DatabaseException;
+import cz.muni.pa165.common_library.exception.DatabaseException;
 import cz.muni.pa165.common_library.racecomponents.Race;
 import cz.muni.pa165.race.api.RaceNameDto;
 import cz.muni.pa165.race.api.SeasonDto;
diff --git a/race/src/main/resources/application.yml b/race/src/main/resources/application.yml
index 9158b3e697b9f6591430251cca31926307567051..8a8fefb4d5bf5292f5b0a1e0c80d2d44c341901f 100644
--- a/race/src/main/resources/application.yml
+++ b/race/src/main/resources/application.yml
@@ -18,3 +18,8 @@ spring:
     driverClassName: org.h2.Driver
     username: admin
     password: admin
+  mvc:
+    throw-exception-if-no-handler-found: true
+  web:
+    resources:
+      add-mappings: false