Spring Boot 2.2.4

  1. Have a controller method with @Produces("application/x-protobuf").
  2. Have a handler interceptor that writes status code 401 to the response when the controller method from #1 is invoked.

This returns an HTTP response with status code 500 and no body. After the fix of #19522, I expected status code 401 to be returned.

This seems to happen due to this code in AbstractMessageConverterMethodProcessor around line 316:

if (isContentTypePreset || !CollectionUtils.isEmpty(producibleMediaTypes)) {
    throw new HttpMessageNotWritableException(
            "No converter for [" + valueType + "] with preset Content-Type '" + contentType + "'");
}
throw new HttpMediaTypeNotAcceptableException(this.allSupportedMediaTypes);

producibleMediaTypes contains the controller's application/x-protobuf, so HttpMessageNotWritableException is thrown, which is turned into a 500 status code.

Comment From: bclozel

Could you provide a sample application showing the issue? I'm not sure I understand the problem here.

Comment From: spring-projects-issues

If you would like us to look at this issue, please provide the requested information. If the information is not provided within the next 7 days this issue will be closed.

Comment From: spring-projects-issues

Closing due to lack of requested feedback. If you would like us to look at this issue, please provide the requested information and we will re-open the issue.