My Consul cannot perform a gRPC health check on my application

5 months ago

It is possible that due to network issues, even after switching to an IPv6 address, my Consul instance is unable to send gRPC requests to the application.

Could it be that Railway’s private network imposes some form of restriction?

Interestingly, this issue does not occur when I use Docker Compose.

If Railway's private network is fully encrypted and can only be accessed through DNS Name, how should I configure Service Discovery?

Awaiting User Response

3 Replies

5 months ago

gRPC uses HTTP/2. The domains may accept HTTP/2 traffic but they will demux down to HTTP/1.1 breaking gRPC in the process. To use gRPC, please use the TCP Proxy instead of a custom domain.


Status changed to Awaiting User Response railway[bot] 5 months ago


5 months ago

Currently, I’m using the following logic: the app retrieves its own IP address and submits a registration request to Consul, which then performs a health check on the provided IP and port.

Even without HTTP/2, gRPC can still function properly over HTTP/1.1.

However, it seems that the app obtains multiple IP addresses, and Consul is unable to directly access the app using these IPs. While I could use only a DNS name, there’s a challenge: Railway provides replicas but doesn’t assign them unique DNS names. As a result, Consul can only see the DNS load balancer for the service, not the individual replicas.


Status changed to Awaiting Railway Response railway[bot] 5 months ago


Status changed to In Progress christian 5 months ago


Status changed to Awaiting Railway Response christian 5 months ago


5 months ago

The referenced service has been deleted, and we are not able to review the logs. Are you experiencing issues with gRPC?


Status changed to Awaiting User Response railway[bot] 5 months ago