Why I am getting different status code from ocelot?

Viewed 392

I have a microservice project with ocelot API Gateway. In one service I have retuned 204(No Content) response. When I run that service directly then I am getting a proper response but when I run that service using ocelot then I am getting 500(Internal Server).

I have verified routing and it's fine because the same API return 200 or 201 then it called from ocelot successfully. But when 204 returns then it returns 500 but it should return 204.

I have checked logs it shows this information:

fail: Microsoft.AspNetCore.Server.Kestrel[13] Connection id "0HM4G9THO6LV0", Request id "0HM4G9THO6LV0:00000006": An unhandled exception was thrown by the application. System.InvalidOperationException: Response Content-Length mismatch: too few bytes written (0 of 72).

Can anyone please help me?

Is there any configuration to handle the 204 status code in the ocelot API gateway?

1 Answers

I had the same problem. I checked my controllers and one of them return 204 with a response body. If you have the same issue you need to return 204 only.

Related