Errors
Every Registry error carries a stable numeric error_code and a machine-readable
reason. This page lists the logical (domain) error codes Registry can return.
For the full error envelope (the google.rpc.Status shape, the reason and
metadata fields, and how codes are structured) see Errors.
Registry codes begin with 9 (for example 9300001, read as 9_300_001:
service, group, specific error). The wire value is always the flat integer; you
can match on either error_code or reason, both are stable.
The Status column is the canonical gRPC status the error maps to, which the
gateway renders as the matching HTTP status (see the
status codes table).
| Code | Reason | Status | Description |
|---|---|---|---|
9300001 | NAMESPACE_NOT_FOUND | NOT_FOUND | Namespace not found. |
9300002 | NAMESPACE_ALREADY_EXISTS | ALREADY_EXISTS | A namespace with this name already exists in the workspace. |
9300003 | NAMESPACE_NAME_VALIDATION | INVALID_ARGUMENT | Namespace name is not valid. |
9300004 | NAMESPACE_WORKSPACE_ID_NOT_VALID | INVALID_ARGUMENT | Namespace workspace ID is required. |
9300005 | NAMESPACE_NOT_EMPTY | FAILED_PRECONDITION | Cannot delete a namespace that contains repositories. |
9300006 | NAMESPACE_NOT_MARKED_FOR_DELETION | FAILED_PRECONDITION | Namespace must be marked for deletion before removal. |
9300007 | NAMESPACE_REGION_ID_NOT_VALID | INVALID_ARGUMENT | Namespace region ID is required. |
9300008 | NAMESPACE_BACKEND_CREATION_FAILED | UNAVAILABLE | Failed to create registry backend resources for the namespace. |
9301001 | REPOSITORY_NOT_FOUND | NOT_FOUND | Repository not found. |
9301002 | REPOSITORY_ALREADY_EXISTS | ALREADY_EXISTS | A repository with this name already exists in the namespace. |
9301003 | REPOSITORY_NAME_VALIDATION | INVALID_ARGUMENT | Repository name is not valid. |
9301004 | REPOSITORY_NAMESPACE_ID_NOT_VALID | INVALID_ARGUMENT | Repository namespace ID is required. |
9301005 | REPOSITORY_NOT_MARKED_FOR_DELETION | FAILED_PRECONDITION | Repository must be marked for deletion before removal. |
9302001 | REGISTRY_OPERATION_NOT_FOUND | NOT_FOUND | Registry operation not found. |
9302002 | REGISTRY_OPERATION_PROGRESS_OUT_OF_RANGE | INVALID_ARGUMENT | Operation progress must be between 0 and 100. |
9302003 | REGISTRY_OPERATION_END_TIME_BEFORE_START_TIME | INVALID_ARGUMENT | Operation end time must not be before start time. |
9303001 | ACCESS_POLICY_NOT_FOUND | NOT_FOUND | Access policy not found. |
9303002 | ACCESS_POLICY_ALREADY_EXISTS | ALREADY_EXISTS | An access policy already exists for this principal and scope. |
9303003 | ACCESS_POLICY_SCOPE_ID_NOT_VALID | INVALID_ARGUMENT | Access policy scope ID is required. |
9303004 | ACCESS_POLICY_PRINCIPAL_ID_NOT_VALID | INVALID_ARGUMENT | Access policy principal ID is required. |
9303005 | ACCESS_POLICY_ACTIONS_ARE_EMPTY | INVALID_ARGUMENT | Access policy must have at least one action. |
9303006 | ACCESS_POLICY_NOT_MARKED_FOR_DELETION | FAILED_PRECONDITION | Access policy must be marked for deletion before removal. |
9304001 | SCAN_POLICY_NOT_FOUND | NOT_FOUND | Scan policy not found. |
9304002 | SCAN_POLICY_ALREADY_EXISTS | ALREADY_EXISTS | A scan policy already exists for this scope. |
9304003 | SCAN_POLICY_SCOPE_ID_NOT_VALID | INVALID_ARGUMENT | Scan policy scope ID is required. |
9304004 | SCAN_POLICY_SCOPE_TYPE_NOT_VALID | INVALID_ARGUMENT | Scan policy scope type is not valid. |
9304005 | SCAN_POLICY_NOT_MARKED_FOR_DELETION | FAILED_PRECONDITION | Scan policy must be marked for deletion before removal. |
9305001 | RETENTION_POLICY_NOT_FOUND | NOT_FOUND | Retention policy not found. |
9305002 | RETENTION_POLICY_ALREADY_EXISTS | ALREADY_EXISTS | A retention policy already exists for this repository. |
9305003 | RETENTION_POLICY_REPOSITORY_ID_NOT_VALID | INVALID_ARGUMENT | Retention policy repository ID is required. |
9305004 | RETENTION_POLICY_SCHEDULE_NOT_VALID | INVALID_ARGUMENT | Retention policy schedule is not valid. |
9305005 | RETENTION_POLICY_NOT_MARKED_FOR_DELETION | FAILED_PRECONDITION | Retention policy must be marked for deletion before removal. |
9306001 | DEPLOYMENT_LOCK_NOT_FOUND | NOT_FOUND | Deployment lock not found. |
9306002 | DEPLOYMENT_LOCK_ALREADY_EXISTS | ALREADY_EXISTS | A deployment lock already exists for this digest and context. |
9306003 | DEPLOYMENT_LOCK_REPOSITORY_ID_NOT_VALID | INVALID_ARGUMENT | Deployment lock repository ID is required. |
9306004 | DEPLOYMENT_LOCK_DIGEST_NOT_VALID | INVALID_ARGUMENT | Deployment lock digest is not valid. |
9306005 | DEPLOYMENT_LOCK_ACTIVE | FAILED_PRECONDITION | Cannot delete an image while deployment locks are active. |
9306006 | DEPLOYMENT_LOCK_CONTEXT_NOT_VALID | INVALID_ARGUMENT | Deployment lock context is not valid. |
9306007 | DEPLOYMENT_LOCK_NOT_MARKED_FOR_DELETION | FAILED_PRECONDITION | Deployment lock must be marked for deletion before removal. |
9307001 | CROSS_NAMESPACE_GRANT_NOT_FOUND | NOT_FOUND | Cross-namespace grant not found. |
9307002 | CROSS_NAMESPACE_GRANT_ALREADY_EXISTS | ALREADY_EXISTS | A cross-namespace grant already exists for this source, target, and tag pattern. |
9307003 | CROSS_NAMESPACE_GRANT_SOURCE_NAMESPACE_ID_NOT_VALID | INVALID_ARGUMENT | Cross-namespace grant source namespace ID is required. |
9307004 | CROSS_NAMESPACE_GRANT_TARGET_NAMESPACE_ID_NOT_VALID | INVALID_ARGUMENT | Cross-namespace grant target namespace ID is required. |
9307005 | CROSS_NAMESPACE_GRANT_SELF_REFERENCING | INVALID_ARGUMENT | Cross-namespace grant source and target namespaces must be different. |
9307006 | CROSS_NAMESPACE_GRANT_NOT_MARKED_FOR_DELETION | FAILED_PRECONDITION | Cross-namespace grant must be marked for deletion before removal. |
9308001 | CREDENTIAL_DISABLED | FAILED_PRECONDITION | The persisted registry credential record is disabled. |
9309001 | ARTIFACT_NOT_FOUND | NOT_FOUND | Artifact not found. |
9309002 | ARTIFACT_DELETION_FAILED | UNAVAILABLE | Failed to delete the artifact in the registry backend. |
9310001 | TAG_DELETION_FAILED | UNAVAILABLE | Failed to delete the tag in the registry backend. |
9311001 | SCAN_TRIGGER_FAILED | UNAVAILABLE | Failed to trigger the artifact scan in the registry backend. |