@Nullable
    default AggregatedHttpResponse onProtocolViolation(ServiceConfig config,
                                                       @Nullable RequestHeaders headers,
                                                       HttpStatus status,
                                                       @Nullable String description,
                                                       @Nullable Throwable cause) {
        return renderStatus(null, config, headers, status, description, cause);
    }
Returns an {@link AggregatedHttpResponse} for the protocol error signified by the given
{@link HttpStatus}, {@code message}, and {@link Throwable}. This method is invoked once
for each request failed at the protocol level.

@param config the {@link ServiceConfig} that provides the configuration properties.
@param headers the received {@link RequestHeaders}, or {@code null} in case of severe protocol violation.
@param status the desired {@link HttpStatus} of the error response.
@param description an optional human-readable description of the error.
@param cause an optional exception that may contain additional information about the error, such as
             {@link ContentTooLargeException}.

@return an {@link AggregatedHttpResponse} to send to the client, or {@code null} to let the next handler
        specified with {@link #orElse(ServerErrorHandler)} handle the event.
core/src/main/java/com/linecorp/armeria/server/ServerErrorHandler.java