go config_error ai_generated true

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

ID: go/grpc-unimplemented-unknown-service

Also available as: JSON · Markdown · 中文
80%Fix Rate
89%Confidence
0Evidence
2024-02-27First Seen

Version Compatibility

VersionStatusIntroducedDeprecatedNotes
1.45+ active — — —

Root Cause

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

中文

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

Workarounds

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

Dead Ends

Common approaches that don't work:

  1. 95% fail

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

  2. 90% fail

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