Somewhere between grpc-go version 1.55.1 and 1.56.1, a change was made that substantially increased the number of "connection refused" messages my client gets if the server is not available when the client starts. Moreover, the client still receives "connection refused" when it sends a message, at least until the first or second retry. I can confirm that lsof shows the post is listening.
My very tentative theory is that this behavior change is related to the changes made to the background reconnection code. Possibly, a connection is not attempted in the goroutine issuing a call, but only from the background. This leads the call to fail until the background goroutine establishes the connection.
Can anyone shed light on this? Or suggest a way to recreate the previous behavior? I don't have a choice about which version to use.