diff --git a/src/main/java/com/fleetops/controller/GlobalControllerExceptionHandler.java b/src/main/java/com/fleetops/controller/GlobalControllerExceptionHandler.java
index 569167b..26f2086 100644
--- a/src/main/java/com/fleetops/controller/GlobalControllerExceptionHandler.java
+++ b/src/main/java/com/fleetops/controller/GlobalControllerExceptionHandler.java
@@ -8,6 +8,7 @@
*
Constraint/validation violations -> 400 Bad Request
* Not found exceptions -> 404 Not Found
* Conflicts such as duplicate resources -> 409 Conflict
+ * Service layer exceptions -> 500 Internal Server Error
* Unhandled errors -> 500 Internal Server Error
*
* The corresponding response bodies follow a simple error format (see ErrorResponse in OpenAPI).
@@ -15,88 +16,213 @@
import com.fleetops.exception.LicensePlateAlreadyExistsException;
import com.fleetops.exception.NotFoundExceptionBase;
+import com.fleetops.exception.ServiceException;
+import jakarta.servlet.http.HttpServletRequest;
import jakarta.validation.ConstraintViolationException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.dao.DataIntegrityViolationException;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.http.converter.HttpMessageNotReadableException;
+import org.springframework.security.access.AccessDeniedException;
+import org.springframework.security.core.AuthenticationException;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
+import org.springframework.web.context.request.WebRequest;
import java.time.LocalDateTime;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@RestControllerAdvice
public class GlobalControllerExceptionHandler {
- @ExceptionHandler(RuntimeException.class)
- public ResponseEntity