In the responses section of that protocol doc ( https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#responses), the "HTTP-Status" production is exactly the string ":status 200". This explicitly means that gRPC servers must always return a HTTP status code of 200 in any gRPC response.
On Wed, Oct 16, 2024 at 8:44 AM 'Ravi Kodippili' via grpc.io < grpc-io@googlegroups.com> wrote: > > 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 > <https://groups.google.com/d/msgid/grpc-io/805eb44e-fa31-481f-8231-71071e87e99fn%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/CAPK2-4cJhKj%2BM45Rj-R%2BGw2yTZv1%2B8d5rczESgnXtgn%3D-1%3DDDw%40mail.gmail.com.
smime.p7s
Description: S/MIME Cryptographic Signature