geektutu/7days-golang · error
rpc server: can't find service
Error message
rpc server: can't find service
What it means
Registry lookup failure in findService: the service name parsed from "Service.Method" (before the dot) is not present in the server's serviceMap, meaning no such service was Register()ed on this server. It fires for requests targeting unregistered or misspelled services.
Source
Thrown at gee-rpc/day3-service/server.go:116
if err := cc.ReadHeader(&h); err != nil {
if err != io.EOF && err != io.ErrUnexpectedEOF {
log.Println("rpc server: read header error:", err)
}
return nil, err
}
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 {View on GitHub (pinned to cf36443821)
Solutions
- Register the service on the server before serving: server.Register(new(DemoService)).
- Verify the service name string used by the client matches the registered receiver's type name.
- Check that the client connected to the server that actually hosts the service.
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at gee-rpc/day3-service/server.go:116 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/0a13eb22c4d6c29d.
Report an issue: GitHub.