geektutu/7days-golang · error
rpc server: can't find method
Error message
rpc server: can't find method
What it means
Method lookup failure in findService: the service exists in serviceMap but the method name (after the dot) has no entry in svc.method, so the requested exported RPC method is not exposed by that service. It fires for misspelled method names or methods failing the RPC signature rules.
Source
Thrown at gee-rpc/day3-service/server.go:122
return &h, nil
}
func (server *Server) findService(serviceMethod string) (svc *service, mtype *methodType, err error) {
dot := strings.LastIndex(serviceMethod, ".")
if dot < 0 {
err = errors.New("rpc server: service/method request ill-formed: " + serviceMethod)
return
}
serviceName, methodName := serviceMethod[:dot], serviceMethod[dot+1:]
svci, ok := server.serviceMap.Load(serviceName)
if !ok {
err = errors.New("rpc server: can't find service " + serviceName)
return
}
svc = svci.(*service)
mtype = svc.method[methodName]
if mtype == nil {
err = errors.New("rpc server: can't find method " + methodName)
}
return
}
func (server *Server) readRequest(cc codec.Codec) (*request, error) {
h, err := server.readRequestHeader(cc)
if err != nil {
return nil, err
}
req := &request{h: h}
req.svc, req.mtype, err = server.findService(h.ServiceMethod)
if err != nil {
return req, err
}
req.argv = req.mtype.newArgv()
req.replyv = req.mtype.newReplyv()
// make sure that argvi is a pointer, ReadBody need a pointer as parameterView on GitHub (pinned to cf36443821)
Solutions
- Check the method name spelling in the client's serviceMethod string.
- Ensure the method satisfies the RPC rules: exported, two exported args (second a pointer), one error return — otherwise it is not registered.
- List the service's registered methods to confirm the method was published.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at gee-rpc/day3-service/server.go:122 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of geektutu/7days-golang@cf36443821 (2026-09-03).
Data as JSON: /api/errors/d4da3fde9418c52d.
Report an issue: GitHub.