Hello, world!
Just a word of caution to all.
When you are using proto files for gRPC calls be sure that your generated proto files' versions are the same.
I had the great privilege of debugging a gRPC Error Code 12 - Unimplemented
for 2 days because my client was using older proto files generated without the "package ____ " line while my server had the newer generated files WITH "package ____" on it.
(You can also get Unimplemented
error if your compression and encodings are different between client and server. See here)
Turns out, that insignificant package line makes a difference to your gRPC message path and your client and your server will be talking about 2 different things (even though you think they are the same)
gRPC message path:
With package name:
/{package-name}/{rpc function}
Without package name:
/{rpc function}
Had to dig through the haystack of gRPC calls with Wireshark to even understand what was happening. (See Wireshark documentation here)
If only there had been better error messages or documentation, instead of a cryptic Unimplemented
error that doesn't even show anything meaningful on a Google search. Fun!
Top comments (0)