Spring MVC – How to handle max upload size exceeded exception

In Spring, you can declare a @ControllerAdvice to catch the ugly max upload size exceeded exception like this :



Depends the types of multipartResolver :

  1. StandardServletMultipartResolver – catch MultipartException, refer to this example.
  2. CommonsMultipartResolver – catch MaxUploadSizeExceededException – refer to this example.

package com.mkyong.exception;

import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.multipart.MaxUploadSizeExceededException;
import org.springframework.web.multipart.MultipartException;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

public class GlobalExceptionHandler {

    public String handleError1(MultipartException e, RedirectAttributes redirectAttributes) {

        redirectAttributes.addFlashAttribute("message", e.getCause().getMessage());
        return "redirect:/uploadStatus";


    public String handleError2(MaxUploadSizeExceededException e, RedirectAttributes redirectAttributes) {

        redirectAttributes.addFlashAttribute("message", e.getCause().getMessage());
        return "redirect:/uploadStatus";


Tomcat Connection Reset
If you deployed to Tomcat, and unable to catch the file size exceeded exception, this may cause by the Tomcat maxSwallowSize setting. Read this – Spring file upload and connection reset issue


  1. Spring’s multipart (file upload) support

About the Author

author image
Founder of Mkyong.com, love Java and open source stuff. Follow him on Twitter. If you like my tutorials, consider make a donation to these charities.


3 Comment threads
0 Thread replies
Most reacted comment
Hottest comment thread
2 Comment authors
Olaf SchmidtBarak Recent comment authors
newest oldest most voted

I have created a class called “CORSFilter extends OncePerRequestFilter”
and it is annotated with @ControllerAdvice
I have tried uploading a large file – in the stack trace I do get this error

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size of 41943040 bytes exceeded; nested exception is org.apache.commons.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (53990195) exceeds the configured maximum (41943040)

but the Debugger doesn’t stop at @ExceptionHandler method


At my client application, I was able getting catching the error with @ExceptionHandler
But inspecting the network status I get:
I have tried having set status for httpServletResponse – but the status is always ERR_CONNECTION_ABORTED.

How can I get a different status and the Network, the stack trace is not good enough

Olaf Schmidt
Olaf Schmidt

This solution saved my day. Couldn’t make any other solution work.

Your tutorials are alway very helpful. Thanks, for all the efforts you put into your coding examples and tutorials!