UNIMPLEMENTED
gRPCERRORCommonServer-SideHIGH confidence

The operation is not implemented or is not supported/enabled in this service

What this means

Indicates the server does not support the requested RPC method. This is a permanent error and clients should not retry.

Why it happens
  1. 1The client is calling an RPC method that does not exist on the server.
  2. 2The client is using an outdated service definition (protobuf) and calling a method that has been removed.
  3. 3The server has not implemented the specific method within a service it exposes.
How to reproduce

A client calls an experimental new method that has not been deployed to the production servers yet.

trigger — this will error
trigger — this will error
// Client tries to call a method that is not defined in the server's service
try {
  await client.aNewMethodThatDoesNotExist(request);
} catch (e) {
  // e.code will be grpc.status.UNIMPLEMENTED
}

expected output

StatusCode.UNIMPLEMENTED: The operation is not implemented or is not supported/enabled in this service

Fix 1

Check Client and Server Proto Definitions

WHEN When a method call fails with this error.

Check Client and Server Proto Definitions
// This is a check of the .proto files, not runtime code.
// Server's .proto file:
service MyService {
  // rpc aNewMethodThatDoesNotExist(...) is missing.
}
// Client's .proto file:
service MyService {
  rpc aNewMethodThatDoesNotExist(...) {}
}

Why this works

Ensure that the client and server are built using the same version of the service's .proto file.

Fix 2

Feature Flag the Method Call

WHEN When deploying a new method that may not be available on all servers.

Feature Flag the Method Call
// Client checks a feature flag before calling the new method
if (featureFlags.isNewMethodEnabled) {
  await client.aNewMethodThatDoesNotExist(request);
} else {
  useOldMethod(request);
}

Why this works

Using feature flags allows clients to gracefully handle cases where they are communicating with older servers that don't have the new method.

What not to do

Retry the request

The server has explicitly stated it does not know what this method is. Retrying will never succeed.

Sources

Content generated with AI assistance and reviewed for accuracy. Found an error? hello@errcodes.dev

← All gRPC errors