[Feature] Proxy should provide clearer diagnostics when rejecting unsupported gRPC client types
- Dominant language
- Java
- Stars
- 22.6k
- Forks
- 12k
- Avg merge
- 3d 1h
- Merged PRs (30d)
- 27
Description
### Is Your Feature Request Related to a Problem?
When using the gRPC Java SDK, I attempted to create a LitePushConsumer.
The current Proxy implementation does not support LitePushConsumer, so the server closes the stream during initialization.
However, the client only receives the following exception:
`java.lang.IllegalStateException: Stream is already completed, no further calls are allowed`
This exception does not indicate the real cause of the failure. There is also no corresponding Proxy log explaining why the connection was terminated.
### Describe the Solution You'd Like
When the Proxy rejects or terminates a client connection because the requested consumer type is unsupported, it should:
Log the actual reason on the Proxy side.
Return a more descriptive gRPC status/message if possible (for example, indicating that LitePushConsumer is not currently supported).
This would make troubleshooting much easier than relying on generic client-side exceptions.
### Describe Alternatives You've Considered
Currently the only way to identify the root cause is to inspect the Proxy implementation or debug the server, since neither the client exception nor the server logs explain why the connection was closed.
### Additional Context
_No response_
Contributor guide
Research direction
Start by tracing the Proxy implementation handling LitePushConsumer during gRPC stream initialization, using the gRPC Java SDK scenario described in the issue. Confirm the unsupported consumer type is identified, then verify that the Proxy logs the reason and returns a descriptive gRPC status or message instead of leaving the client with only the generic stream exception.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- grpc, java
- Domain
- api, backend, distributed-systems
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 55/100