connectrpc / connect-es

The TypeScript implementation of Connect: Protobuf RPC that works.
https://connectrpc.com/
Apache License 2.0
1.35k stars 77 forks source link

httpVersion check for `createRouterTransport` #1258

Open nicole0707 opened 3 days ago

nicole0707 commented 3 days ago

Is your feature request related to a problem? Please describe. When Connect upgrade to v1.5, it starts to check the gRPC code and gRPC message from trailer or header by default. We encountered an issue when usingcreateRouterTransport with httpVersion: 1.1, the test didn't pick up the breaking change for us.

Describe the solution you'd like I am wondering if possible to check the transport option when using createRouterTransport, ensure it's similar to testing against with real service.

Please specify whether the request is for Connect for Web or Connect for Node.js. Connect for Node.js

Describe alternatives you've considered I am not sure of the best way to handle this, but perhaps we could verify the transport option like enforce checking the httpVersion starting from v1.5.

Additional context https://github.com/connectrpc/connect-es/pull/1205/files#diff-92e5a379d00b073cbd57f841a9669260a8e9603c2015e09aeeb49daf6fe788b8R40

nicole0707 commented 3 days ago

BTW, I am happy to contribute to implementing the change if we come up with a solution. Cheers!

timostamm commented 3 days ago

Can you provide some details on where you started to see the error with v1.5? Do you mean that the tests ran fine with createRouterTransport, but running against a real server, you started seeing the error?

nicole0707 commented 2 days ago

Yes, it works in the unit test with "httpVersion":1.1, but it throws an error protocol error: missing status when running against the real service.

timostamm commented 1 day ago

Thanks! Can you give an example of where you are setting "httpVersion":1.1? Can you share what server software the client was running against?