#36461·grpc

gRPC Ruby Server seemingly not respecting configured retry policy

Author: paigeruppel-upstartCreated Apr 26, 2024Updated Sep 11, 2026
Labelskind/buglang/rubypriority/P2

What version of gRPC and what language are you using?

ruby 3.1.2 grpc 1.62.0

What operating system (Linux, Windows,...) and version?

System Version: macOS 14.4.1 (23E224) Kernel Version: Darwin 23.4.0

What runtime / compiler are you using (e.g. python version or version of gcc)

ruby 3.1.2

gcc --version
Apple clang version 15.0.0 (clang-1500.3.9.4)
Target: arm64-apple-darwin23.4.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin

What did you do?

In the course of doing some work on gRPC ruby clients with configured retryPolicies (https://github.com/grpc/proposal/blob/master/A6-client-retries.md) I was unable to see the retry policy getting respected by the server implementation.

At first- I assumed this was an issue on the client side. To rule that out I

  • created a python server that serves the same API
  • ran the same configured retry client against the python implementation and was able to see the configured retry policy work as expected

I believe this issue is on the gRPC ruby server side. I have started to dig through some of the trace logs, but honestly I am not sure where to start this investigation. https://github.com/grpc/grpc/blob/master/TROUBLESHOOTING.md

I have pushed my testing apps here: https://github.com/paigeruppel-upstart/simple-grpc-rb https://github.com/paigeruppel-upstart/simple-grpc-py

With READMEs that outline how to run each against themself and against one another.

I have not pushed my Kotlin/SpringBoot testing app - but I am seeing the same behavior there as well.

What did you expect to see?

service_config retry client lang server lang result
ruby ruby retried
python ruby retried
ruby python retried
python python retried

What did you see instead?

service_config retry client lang server lang result
ruby ruby NOT retried
python ruby NOT retried
ruby python retried
python python retried

Anything else we should know about your project / environment?

for the above test repos - you can also run the "manual_retry_client" against the SimpleRetryAPI - I used this to ensure that the underlying implementation was behaving as expected.

I hopefully have made this easy to reproduce. I'm at a loss currently but I will post any updates here if I can pinpoint the issue and/or what I may be doing incorrectly. Thanks!