> gRPC (currently) always uses 200 for RPC errors

I wanted to confirm that servers should return a 200 HTTP status code 
regardless of gRPC status. I believe this is the case but I didn't 
find https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md to be 
explicit about it.

On Monday, October 7, 2024 at 1:19:03 PM UTC-4 Eric Anderson wrote:

> google/rpc/code.proto 
> <https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto> 
> has the HTTP mappings. Those are REST-centric and are for converting *to* 
> HTTP status code. Multiple of them are obviously wrong for gRPC (e.g., 
> NOT_FOUND→404) and multiple of them are... weak... mappings even with REST. 
> They aren't used for gRPC as gRPC (currently) always uses 200 for RPC 
> errors. (I would be interested in changing that, in particular for 
> UNIMPLEMENTED, but it hasn't been a problem.)
>
> http-grpc-status-mapping.md is the opposite. It is HTTP → gRPC status 
> code. HTTP 429 could be mapped to RESOURCE_EXHAUSTED, but I don't think 
> UNAVAILABLE is *bad*. There was some discussion on the PR about this 
> specifically after it was merged: 
> https://github.com/grpc/grpc/pull/4955#pullrequestreview-6858335 . The 
> current mapping was trying to be "good enough," and was thought to be the 
> first pass. I'm quite surprised it has been 8 years without *any* change.
>
> On Mon, Oct 7, 2024 at 7:09 AM Trustin Lee <tru...@gmail.com> wrote:
>
>> Hi,
>>
>> According to http-grpc-status-mapping.md 
>> <https://github.com/grpc/grpc/blob/v1.66.2/doc/http-grpc-status-mapping.md>, 
>> HTTP 429 Too Many Requests is translated into gRPC UNAVAILABLE rather than 
>> RESOURCE_EXHAUSTED. However, at some point in the past, statuscodes.md 
>> <https://github.com/grpc/grpc/blob/v1.23.1/doc/statuscodes.md> said 
>> RESOURCE_EXHAUSTED. Is there any reason the gRPC team changed the 
>> recommended mapping for HTTP 429 status? Why is UNAVAILABLE is better than 
>> RESOURCE_EXHAUSTED for HTTP 429?
>>
>> I'm asking this question not only to solve my own curiosity, but also to 
>> give a better answer to the bug report 
>> <https://github.com/line/armeria/issues/5928> for Armeria's gRPC status 
>> code mapping that merely follows what grpc-java does.
>>
>> Thanks,
>> T
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "grpc.io" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to grpc-io+u...@googlegroups.com.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/grpc-io/24702a70-915d-41d5-a9a1-e477bfaf8a05n%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/grpc-io/24702a70-915d-41d5-a9a1-e477bfaf8a05n%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"grpc.io" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to grpc-io+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/grpc-io/805eb44e-fa31-481f-8231-71071e87e99fn%40googlegroups.com.

Reply via email to