Open
Description
A Python grpc server (did not test with java yet) with plain text h2c:
...
context.set_details("some details")
context.set_code(grpc.StatusCode.RESOURCE_EXHAUSTED)
return RESPONSE()
Leads to 3 frames being send in the response:
- HEADERS, without grpc-status
- DATA
- HEADERS containing grpc-status 8 - RESOURCE EXHAUSTED
- RST_STREAM
The gateway is unable to read the grpc status and adds a 0 / OK, so the client never sees the original grpc status.
The gateway should probably even close the connection if a non ok status code was received? I would assume that the server does not send that status code again. Clients seem to do that, they throw an exception.