apache / apache/rocketmq

[Feature] Proxy should provide clearer diagnostics when rejecting unsupported gRPC client types

Open
#10,671 2 comments 0 reactions 0 assignees View on GitHub
type/new feature
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.