StreamingResponseBody returning empty body

Had a similar problem and it turns out you might have a synchronous stream copy in filter happening before the asynchronous call filling the response outputStream. Check if disabling other servlet filters makes it work. also additional logging will help in revealing the issue (check response data size, see whether it grows at some point in the filter chain).