-
Notifications
You must be signed in to change notification settings - Fork 33
Description
Version
5.0.4
Context
We use Vert.x gRPC Server with gRPC-Web clients and have done so successfully for the past few years.
We use the emissary-ingress to convert from gRPC-Web to gRPC as Vert.x didn't natively support gRPC-Web until recently. TLS is terminated by emissary and we use plain HTTP within our VPC.
We use generated grpc-java/grpc-kotlin server stubs with the Vert.x gRPC Server. And we generate gRPC-Web clients for angular/typescript
This week I upgraded to 5.0.4 and we now get 415 errors when sending a gRPC-Web request from the javascript client.
During the upgrade I had to switch to the 'gRPC IO Server' due to the removal of the MethodDescription support from plain gRPC Server - other than switching the constructor the change was simple.
Reverting back to 4.5.x resolves the issue so this is definitely related to the Vert.x 5.0 upgrade.
All other gRPC client requests (Java/Kotlin and Android native) work fine - only gRPC web requests have this issue.
I tried enabling trace logging level for io.vertx and io.netty but I don't see any log messages that would explain why we get the 415 error.
Looking at the code I see a few references to 415 error, mostly for Content-Type and HTTP version mismatches.
Is there anything I can do to further debug this issue and if there is a workaround you know of then that would be very helpful.
I plan on attaching a debugger to the running server pod in AWS to see if I can trace through to the rejection point.
I may also try to reproduce using a local server, but would also need to setup a local emissary proxy with the same configuration we use in AWS to complete the reproduction which is non-trivial.
Thanks for your support.
Steps to reproduce
- Upgrade to 5.0.4
- Send a gRPC-Web request to emissary-ingress
- emissary-ingress converts the request to gRPC
- gRPC request is forwarded to
gRPC IO Serverwith a registered gRPC service method - gRPC request is rejected with a 415 error
Do you have a reproducer?
No response