Skip to content

Error codes

When something goes wrong, the Inventory API returns a gRPC status with a code and a message. Use this page to look up what went wrong and how to fix it.

Code Meaning Common causes What to do
CANCELLED Client canceled Context canceled, client timeout Retry; increase deadline
UNKNOWN Unmapped error Unexpected bug, stream context propagation issue Check server logs
INVALID_ARGUMENT Validation failed Missing fields, protovalidate, bad UUID/URL, empty bulk items, duplicate transaction_id Fix request; read message for hints
DEADLINE_EXCEEDED Deadline exceeded Slow DB, large bulk, network latency Increase deadline; reduce batch
NOT_FOUND Resource absent Wrong resource_id, type, or reporter Verify identifiers; confirm resource was reported
ALREADY_EXISTS Duplicate resource Duplicate reporter resource key (same resource_type + resource_id + reporter.type + reporter_instance_id) Use update/report semantics or treat as success
PERMISSION_DENIED Meta-authz rejected Missing role binding, wrong principal Review RBAC
FAILED_PRECONDITION State rejected Inventory ID mismatch on update Align IDs on update paths
UNIMPLEMENTED RPC not available Wrong API version or disabled feature Confirm service version
INTERNAL Server failure DB error, meta-authorizer down, bulk mismatch Check logs; verify backend health
UNAVAILABLE Cannot accept traffic Read-only mode, process down Retry; check read-only flag
UNAUTHENTICATED No valid auth No credentials, middleware reject, missing stream metadata Configure authentication
Code Behavior
UNAVAILABLE, DEADLINE_EXCEEDED Retry with exponential backoff
UNAUTHENTICATED Refresh token; verify TLS — see Enable TLS
INVALID_ARGUMENT, FAILED_PRECONDITION Do not retry; fix request
NOT_FOUND Do not retry; verify resource exists
PERMISSION_DENIED Do not retry; fix authorization
INTERNAL Limited retry; escalate if persistent