diff --git a/proxy/src/main/java/org/apache/rocketmq/proxy/grpc/v2/GrpcMessagingApplication.java b/proxy/src/main/java/org/apache/rocketmq/proxy/grpc/v2/GrpcMessagingApplication.java index c470eda55ca..9ee3f4fddd4 100644 --- a/proxy/src/main/java/org/apache/rocketmq/proxy/grpc/v2/GrpcMessagingApplication.java +++ b/proxy/src/main/java/org/apache/rocketmq/proxy/grpc/v2/GrpcMessagingApplication.java @@ -358,7 +358,14 @@ public void notifyClientTermination(NotifyClientTerminationRequest request, @Override public void changeInvisibleDuration(ChangeInvisibleDurationRequest request, StreamObserver responseObserver) { - Function statusResponseCreator = status -> ChangeInvisibleDurationResponse.newBuilder().setStatus(status).build(); + Function statusResponseCreator = status -> { + ChangeInvisibleDurationResponse.Builder builder = + ChangeInvisibleDurationResponse.newBuilder().setStatus(status); + if (Code.TOO_MANY_REQUESTS.equals(status.getCode())) { + builder.setReceiptHandle(request.getReceiptHandle()); + } + return builder.build(); + }; ProxyContext context = createContext(); try { this.addExecutor(this.consumerThreadPoolExecutor,