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.

CodeMeaningCommon causesWhat to do
CANCELLEDClient canceledContext canceled, client timeoutRetry; increase deadline
UNKNOWNUnmapped errorUnexpected bug, stream context propagation issueCheck server logs
INVALID_ARGUMENTValidation failedMissing fields, protovalidate, bad UUID/URL, empty bulk items, duplicate transaction_idFix request; read message for hints
DEADLINE_EXCEEDEDDeadline exceededSlow DB, large bulk, network latencyIncrease deadline; reduce batch
NOT_FOUNDResource absentWrong resource_id, type, or reporterVerify identifiers; confirm resource was reported
ALREADY_EXISTSDuplicate resourceDuplicate reporter resource key (same resource_type + resource_id + reporter.type + reporter_instance_id)Use update/report semantics or treat as success
PERMISSION_DENIEDMeta-authz rejectedMissing role binding, wrong principalReview RBAC
FAILED_PRECONDITIONState rejectedInventory ID mismatch on updateAlign IDs on update paths
UNIMPLEMENTEDRPC not availableWrong API version or disabled featureConfirm service version
INTERNALServer failureDB error, meta-authorizer down, bulk mismatchCheck logs; verify backend health
UNAVAILABLECannot accept trafficRead-only mode, process downRetry; check read-only flag
UNAUTHENTICATEDNo valid authNo credentials, middleware reject, missing stream metadataConfigure authentication
CodeBehavior
UNAVAILABLE, DEADLINE_EXCEEDEDRetry with exponential backoff
UNAUTHENTICATEDRefresh token; verify TLS — see Enable TLS
INVALID_ARGUMENT, FAILED_PRECONDITIONDo not retry; fix request
NOT_FOUNDDo not retry; verify resource exists
PERMISSION_DENIEDDo not retry; fix authorization
INTERNALLimited retry; escalate if persistent