gRPC

gRPC 5 NOT_FOUND vs 6 ALREADY_EXISTS

Both gRPC 5 (NOT_FOUND) and 6 (ALREADY_EXISTS) belong to the gRPC Status Codes category. 5 indicates that some requested entity was not found. For example, a file or directory that the RPC was supposed to operate on does not exist. Meanwhile, 6 means that the entity that a client attempted to create already exists. For example, a file or directory that the RPC was supposed to create already exists.

Description

Some requested entity was not found. For example, a file or directory that the RPC was supposed to operate on does not exist.

When You See It

The resource referenced in the request doesn't exist — such as looking up a user by ID that has been deleted or never created.

How to Fix

Verify the resource identifier is correct. Ensure the resource was created before accessing it, or handle the not-found case gracefully in your client.

Description

The entity that a client attempted to create already exists. For example, a file or directory that the RPC was supposed to create already exists.

When You See It

A create operation failed because a resource with the same unique identifier or name already exists in the system.

How to Fix

Use a different identifier, or switch to an upsert/update operation if overwriting is acceptable. Check for existing resources before creating.

Key Differences

1.

gRPC 5: Some requested entity was not found. For example, a file or directory that the RPC was supposed to operate on does not exist.

2.

gRPC 6: The entity that a client attempted to create already exists. For example, a file or directory that the RPC was supposed to create already exists.

3.

You encounter 5 when the resource referenced in the request doesn't exist — such as looking up a user by ID that has been deleted or never created.

4.

You encounter 6 when a create operation failed because a resource with the same unique identifier or name already exists in the system.

When to Use Which

For 5 (NOT_FOUND): Verify the resource identifier is correct. Ensure the resource was created before accessing it, or handle the not-found case gracefully in your client. For 6 (ALREADY_EXISTS): Use a different identifier, or switch to an upsert/update operation if overwriting is acceptable. Check for existing resources before creating.

Learn More