go config_error ai_generated true

rpc 错误:code = Unimplemented desc = 未知服务 pb.UserService

rpc error: code = Unimplemented desc = unknown service pb.UserService

ID: go/grpc-unimplemented-unknown-service

其他格式: JSON · Markdown 中文 · English
80%修复率
89%置信度
0证据数
2024-02-27首次发现

版本兼容性

版本状态引入弃用备注
1.45+ active — — —

根因分析

客户端调用了服务端未注册的服务。通常是生成的客户端代码过旧、服务全限定名拼写错误,或服务端忘记调用 RegisterUserServiceServer。

English

The client called a service that the server has not registered. Usually a stale generated client, a typo in the fully-qualified service name, or a server that forgot to call RegisterUserServiceServer.

generic

解决方案

  1. 95% 成功率
    s := grpc.NewServer()
    pb.RegisterUserServiceServer(s, &userServer{})
    reflection.Register(s) // enables grpcurl discovery
    log.Fatal(s.Serve(lis))
  2. 90% 成功率
    // protoc --go_out=. --go-grpc_out=. user.proto
    // then confirm: grpcurl -plaintext localhost:50051 list

无效尝试

常见但无效的做法:

  1. 95% 失败

    Unimplemented is a routing error on the server, not a TLS issue; disabling TLS does nothing for service lookup.

  2. 90% 失败

    The server will never learn the service; retries return Unimplemented deterministically.