apache / apache/dubbo

[Bug] org.apache.dubbo.remoting.http12.exception.HttpStatusException: Invoker for gRPC not found

Open
#15,641 9 comments 1 reaction 0 assignees View on GitHub
help wanted
Dominant language
Java
Stars
41.6k
Forks
26.4k
Avg merge
15h 13m
Merged PRs (30d)
4

Description

### Pre-check

- [x] I am sure that all the content I provide is in English.

### Search before asking

- [x] I had searched in the [issues](https://github.com/apache/dubbo/issues?q=is%3Aissue) and found no similar issues.

### Apache Dubbo Component

Java SDK (apache/dubbo)

### Dubbo Version

After starting the consumer, o.a.dubbo.registry.client.metadata.MetadataUtils Failed to get app metadata for revision. the consumer side is triggered when pulling metadata every second, and a consumer-side exception occurs:"UNIMPLEMENTED : Invoker for gRPC not found"; the provider side throws an exception:"Invoker for gRPC not found".

Using version numbers:
dubbo-provider: 3.3.5 + springboot:2.7.17 + JDK17
dubbo-consumer: 3.1.11 + springboot:2.7.17 + JDK 17

Server configuration (provider-config):

dubbo:
registry:
address: nacos://127.0.0.1:8848?username=nacos&password=nacos
register-mode: instance
protocols:
tri:
name: tri
port: 8080
dubbo:
name: dubbo
port: 20880

### Steps to reproduce this issue

Triple+JAX-RS

image

[Dubbo provider exception stack]:

[DubboServerHandler-192.168.14.12:8080-thread-190] INFO o.a.d.r.p.tri.h12.AbstractServerTransportListener - traceId: - [DUBBO] An error occurred while processing the http request with GrpcHttp2ServerTransportListener, Http2MetadataFrame{method='POST', path='/org.apache.dubbo.metadata.MetadataService/getMetadataInfo', contentType='application/grpc+proto', streamId=3, endStream=false}, dubbo version: 3.3.5, current host: 192.168.14.12
org.apache.dubbo.remoting.http12.exception.HttpStatusException: Invoker for gRPC not found
at org.apache.dubbo.rpc.protocol.tri.h12.grpc.GrpcRequestHandlerMapping.notFound(GrpcRequestHandlerMapping.java:79)
at org.apache.dubbo.rpc.protocol.tri.h12.grpc.GrpcRequestHandlerMapping.getRequestHandler(GrpcRequestHandlerMapping.java:64)
at org.apache.dubbo.rpc.protocol.tri.route.DefaultRequestRouter.route(DefaultRequestRouter.java:50)
at org.apache.dubbo.rpc.protocol.tri.h12.AbstractServerTransportListener.doRoute(AbstractServerTransportListener.java:122)
at org.apache.dubbo.rpc.protocol.tri.h12.grpc.GrpcHttp2ServerTransportListener.onPrepareMetadata(GrpcHttp2ServerTransportListener.java:69)
at org.apache.dubbo.rpc.protocol.tri.h12.grpc.GrpcHttp2ServerTransportListener.onPrepareMetadata(GrpcHttp2ServerTransportListener.java:49)
at org.apache.dubbo.rpc.protocol.tri.h12.AbstractServerTransportListener.lambda$onMetadata$0(AbstractServerTransportListener.java:107)
at org.apache.dubbo.common.threadpool.serial.SerializingExecutor.run(SerializingExecutor.java:111)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at org.apache.dubbo.common.threadlocal.InternalRunnable.run(InternalRunnable.java:39)
at java.base/java.lang.Thread.run(Thread.java:842)

[Dubbo consumer exception stack]:

[Dubbo-framework-metadata-retry-thread-1] WARN o.a.d.r.c.e.l.ServiceInstancesChangedListener - traceId: - [DUBBO] Received address refresh retry event, 1755588333304, dubbo version: 3.1.11, current host: 192.168.14.12, error code: 99-0. This may be caused by unknown error in registry module, go to https://dubbo.apache.org/faq/99/0 to find instructions.
2025-08-19 15:25:43.306 [Dubbo-framework-metadata-retry-thread-1] WARN o.a.d.r.c.e.l.ServiceInstancesChangedListener - traceId: - [DUBBO] Retrying address notification..., dubbo version: 3.1.11, current host: 192.168.14.12, error code: 99-0. This may be caused by unknown error in registry module, go to https://dubbo.apache.org/faq/99/0 to find instructions.
2025-08-19 15:25:43.306 [Dubbo-framework-metadata-retry-thread-1] WARN o.a.d.r.c.e.l.ServiceInstancesChangedListener - traceId: - [DUBBO] Received address refresh retry event, 1755588333304, dubbo version: 3.1.11, current host: 192.168.14.12, error code: 99-0. This may be caused by unknown error in registry module, go to https://dubbo.apache.org/faq/99/0 to find instructions.
2025-08-19 15:25:43.306 [Dubbo-framework-metadata-retry-thread-1] WARN o.a.d.r.c.e.l.ServiceInstancesChangedListener - traceId: - [DUBBO] Retrying address notification..., dubbo version: 3.1.11, current host: 192.168.14.12, error code: 99-0. This may be caused by unknown error in registry module, go to https://dubbo.apache.org/faq/99/0 to find instructions.
2025-08-19 15:25:43.307 [Dubbo-framework-metadata-retry-thread-1] INFO org.apache.dubbo.rpc.model.ModuleModel - traceId: - [DUBBO] Dynamically registering consumer model uupt-middle-ackdemo-service/org.apache.dubbo.metadata.MetadataService:2.0.0 into model Dubbo Module[1.1.0], dubbo version: 3.1.11, current host: 192.168.14.12
2025-08-19 15:25:43.317 [Dubbo-framework-metadata-retry-thread-1] ERROR o.a.dubbo.registry.client.metadata.MetadataUtils - traceId: - [DUBBO] Failed to get app metadata for revision ac086b2ccffbf5ebef12482977fe76ab for type local from instance 192.168.14.12:20880, dubbo version: 3.1.11, current host: 192.168.14.12, error code: 1-39. This may be caused by , go to https://dubbo.apache.org/faq/1/39 to find instructions.
org.apache.dubbo.rpc.StatusRpcException: UNIMPLEMENTED : Invoker for gRPC not found
at org.apache.dubbo.rpc.TriRpcStatus.asException(TriRpcStatus.java:214)
at org.apache.dubbo.rpc.protocol.tri.call.UnaryClientCallListener.onClose(UnaryClientCallListener.java:47)
at org.apache.dubbo.rpc.protocol.tri.call.TripleClientCall.onComplete(TripleClientCall.java:106)
at org.apache.dubbo.rpc.protocol.tri.stream.TripleClientStream$ClientTransportListener.finishProcess(TripleClientStream.java:216)
at org.apache.dubbo.rpc.protocol.tri.stream.TripleClientStream$ClientTransportListener.onTrailersReceived(TripleClientStream.java:295)
at org.apache.dubbo.rpc.protocol.tri.stream.TripleClientStream$ClientTransportListener.lambda$onHeader$1(TripleClientStream.java:398)
at org.apache.dubbo.common.threadpool.serial.SerializingExecutor.run(SerializingExecutor.java:102)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at org.apache.dubbo.common.threadlocal.InternalRunnable.run(InternalRunnable.java:41)
at java.base/java.lang.Thread.run(Thread.java:842)

### What you expected to happen

protocols:
tri:
name: tri
port: 8080
dubbo:
name: dubbo
port: 20880

The Dubbo 3.3.x version also encounters this exception during interoperation and does not support the multi-port and multi-protocol configuration method. When it is necessary to use Triple + JAX-RS to provide REST services, single-port multi-protocol is not supported.

The Dubbo provider does not expose the interface: org.apache.dubbo.metadata.MetadataService/getMetadataInfo, only /org.apache.dubbo.metadata.MetadataServiceV2/GetMetadataInfo

image

### Anything else

After starting the consumer, o.a.dubbo.registry.client.metadata.MetadataUtils Failed to get app metadata for revision. the consumer side is triggered when pulling metadata every second

### Are you willing to submit a pull request to fix on your own?

- [x] Yes I am willing to submit a pull request on my own!

### Code of Conduct

- [x] I agree to follow this project's [Code of Conduct](https://www.apache.org/foundation/policies/conduct)

Contributor guide

Open the contributing guide

Research direction

Start with GrpcRequestHandlerMapping.java and MetadataUtils, then trace how the metadata request is routed between the provider's Triple and Dubbo ports. Reproduce the configuration using Dubbo 3.3.5/3.1.11 and compare the requested MetadataService/getMetadataInfo path with the exposed MetadataServiceV2/GetMetadataInfo path. Done means the reported metadata retrieval scenario no longer returns “Invoker for gRPC not found”.

Written by the indexing model from the issue text.

Assessment

Tech stack
grpc, java
Domain
backend-api-design, distributed-systems, networking
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
42/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.