Skip to content
Latchkey

gRPC "UNIMPLEMENTED: Method not found" in CI

gRPC status 12 UNIMPLEMENTED means the server received the call but has no implementation registered for that fully-qualified method. The connection works; the service or method path does not match what the server serves.

What this error means

A call fails with "12 UNIMPLEMENTED: Method not found: package.Service/Method" or "The server does not implement the method ...", while the connection itself succeeds.

gRPC
Error: 12 UNIMPLEMENTED: Method not found:
users.v1.UserService/GetUser

Common causes

Client and server built from different protos

The client calls a service/method path that the server's generated code does not register, because the two were generated from different .proto versions or package names.

The service was never registered on the server

The handler exists but addService/registerService was not called, so the server does not route that method.

How to fix it

Generate client and server from one proto

  1. Confirm the package name and method match between client and server stubs.
  2. Regenerate both from the same .proto in CI so paths align.
  3. Verify the server actually registers the service implementation.
JavaScript
server.addService(UserService.service, { getUser });

List the served methods with reflection

Ask the server which methods it exposes to see the exact paths it serves.

Terminal
grpcurl -plaintext localhost:50051 list users.v1.UserService

How to prevent it

  • Generate client and server stubs from a single shared proto in CI.
  • Keep proto package names stable across client and server.
  • Assert every intended service is registered at startup.

Related guides

Tired of flaky CI? Latchkey auto-heals failed jobs and retries them for you. Start free →