[Bug] org.apache.dubbo.remoting.http12.exception.HttpStatusException: Invoker for gRPC not found
- 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
[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
### 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
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