Skip to content
qibdo qibdo
Theme
Book a demo

Errors

Every Registry error carries a stable numeric error_code and a machine-readable reason. This page lists the logical error codes Registry can return, across its domain groups (9_3xx) and infrastructure groups (9_6xx). 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 9301001, read as 9_301_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).

CodeReasonStatusDescription
9301001REPOSITORY_NOT_FOUNDNOT_FOUNDRepository not found.
9301002REPOSITORY_ALREADY_EXISTSALREADY_EXISTSA repository with this name already exists in the workspace.
9301003REPOSITORY_NAME_VALIDATIONINVALID_ARGUMENTRepository name is not valid.
9301004REPOSITORY_WORKSPACE_ID_NOT_VALIDINVALID_ARGUMENTRepository workspace ID is required.
9301005REPOSITORY_NOT_MARKED_FOR_DELETIONFAILED_PRECONDITIONRepository must be marked for deletion before removal.
9301006REPOSITORY_VISIBILITY_NOT_VALIDINVALID_ARGUMENTRepository visibility is not valid.
9301007REPOSITORY_FORMAT_NOT_VALIDINVALID_ARGUMENTRepository format is not valid.
9301008IMAGE_REPOSITORY_DESCRIPTION_NOT_VALIDINVALID_ARGUMENTImageRepository description must be at most 1024 characters and carry no control or bidirectional characters.
9302001REGISTRY_OPERATION_NOT_FOUNDNOT_FOUNDRegistry operation not found.
9302002REGISTRY_OPERATION_PROGRESS_OUT_OF_RANGEINVALID_ARGUMENTOperation progress must be between 0 and 100.
9302003REGISTRY_OPERATION_END_TIME_BEFORE_START_TIMEINVALID_ARGUMENTOperation end time must not be before start time.
9302006REGISTRY_OPERATION_SCOPE_TYPE_NOT_VALIDINVALID_ARGUMENTOperation scope type is not valid.
9303001ACCESS_POLICY_NOT_FOUNDNOT_FOUNDAccess policy not found.
9303002ACCESS_POLICY_ALREADY_EXISTSALREADY_EXISTSAn access policy already exists for this principal and scope.
9303003ACCESS_POLICY_SCOPE_NOT_VALIDINVALID_ARGUMENTAccess policy scope ID is required.
9303004ACCESS_POLICY_PRINCIPAL_ID_NOT_VALIDINVALID_ARGUMENTAccess policy principal ID is required.
9303005ACCESS_POLICY_ACTIONS_ARE_EMPTYINVALID_ARGUMENTAccess policy must have at least one action.
9303006ACCESS_POLICY_NOT_MARKED_FOR_DELETIONFAILED_PRECONDITIONAccess policy must be marked for deletion before removal.
9303007ACCESS_POLICY_PRINCIPAL_TYPE_NOT_VALIDINVALID_ARGUMENTAccess policy principal type is required.
9303008ACCESS_POLICY_ACTION_NOT_VALIDINVALID_ARGUMENTAccess policy action is not valid.
9304001SCAN_POLICY_NOT_FOUNDNOT_FOUNDScan policy not found.
9304002SCAN_POLICY_ALREADY_EXISTSALREADY_EXISTSA scan policy already exists for this scope.
9304003SCAN_POLICY_WORKSPACE_ID_NOT_VALIDINVALID_ARGUMENTScan policy scope ID is required.
9304004SCAN_POLICY_NOT_MARKED_FOR_DELETIONFAILED_PRECONDITIONScan policy scope type is not valid.
9305001RETENTION_POLICY_NOT_FOUNDNOT_FOUNDRetention policy not found.
9305002RETENTION_POLICY_ALREADY_EXISTSALREADY_EXISTSA retention policy already exists for this repository.
9305003RETENTION_POLICY_WORKSPACE_ID_NOT_VALIDINVALID_ARGUMENTRetention policy repository ID is required.
9305004RETENTION_POLICY_SCHEDULE_NOT_VALIDINVALID_ARGUMENTRetention policy schedule is not valid.
9305005RETENTION_POLICY_NOT_MARKED_FOR_DELETIONFAILED_PRECONDITIONRetention policy must be marked for deletion before removal.
9305006RETENTION_RULE_NOT_SPECIFIEDINVALID_ARGUMENTEach retention rule must specify exactly one keep rule.
9306001DEPLOYMENT_LOCK_NOT_FOUNDNOT_FOUNDDeployment lock not found.
9306002DEPLOYMENT_LOCK_ALREADY_EXISTSALREADY_EXISTSA deployment lock already exists for this digest and context.
9306003DEPLOYMENT_LOCK_REPOSITORY_ID_NOT_VALIDINVALID_ARGUMENTDeployment lock repository ID is required.
9306004DEPLOYMENT_LOCK_DIGEST_NOT_VALIDINVALID_ARGUMENTDeployment lock digest is not valid.
9306005DEPLOYMENT_LOCK_ACTIVEFAILED_PRECONDITIONCannot delete an image while deployment locks are active.
9306006DEPLOYMENT_LOCK_CONTEXT_NOT_VALIDINVALID_ARGUMENTDeployment lock context is not valid.
9306007DEPLOYMENT_LOCK_NOT_MARKED_FOR_DELETIONFAILED_PRECONDITIONDeployment lock must be marked for deletion before removal.
9307001WORKSPACE_REGISTRY_NOT_FOUNDNOT_FOUNDThe workspace has no registry.
9307002WORKSPACE_REGISTRY_WORKSPACE_ID_NOT_VALIDINVALID_ARGUMENTWorkspace registry workspace ID is required.
9307003WORKSPACE_REGISTRY_NOT_MARKED_FOR_DELETIONFAILED_PRECONDITIONWorkspace registry must be marked for deletion before removal.
9309001ARTIFACT_NOT_FOUNDNOT_FOUNDArtifact not found.
9309002ARTIFACT_DELETION_FAILEDUNAVAILABLEFailed to delete the artifact in the registry backend.
9309003ARTIFACT_LOOKUP_FAILEDUNAVAILABLEFailed to resolve the artifact in the registry backend.
9310001TAG_DELETION_FAILEDUNAVAILABLEFailed to delete the tag in the registry backend.
9311001SCAN_TRIGGER_FAILEDUNAVAILABLEFailed to trigger the artifact scan in the registry backend.
9312001REPOSITORY_NAME_PATTERN_NOT_VALIDINVALID_ARGUMENTRepository name pattern is not valid.
9313001QUOTA_DEFINITION_METRIC_IS_BLANKINVALID_ARGUMENTQuota definition metric is required.
9313002QUOTA_DEFINITION_METRIC_FORMAT_IS_NOT_VALIDINVALID_ARGUMENTQuota definition metric format is not valid.
9313003QUOTA_DEFINITION_DISPLAY_NAME_IS_BLANKINVALID_ARGUMENTQuota definition display name is required.
9313004QUOTA_DEFINITION_DEFAULT_LIMIT_IS_NOT_VALIDINVALID_ARGUMENTQuota definition default limit is not valid.
9313005QUOTA_DEFINITION_REFRESH_INTERVAL_IS_NOT_VALIDINVALID_ARGUMENTQuota definition refresh interval is not valid.
9313006QUOTA_DEFINITION_NOT_FOUNDNOT_FOUNDQuota definition not found.
9314001QUOTA_LIMIT_EFFECTIVE_LIMIT_IS_NOT_VALIDINVALID_ARGUMENTQuota limit effective limit is not valid.
9314002QUOTA_LIMIT_SCOPE_ID_IS_NOT_VALIDINVALID_ARGUMENTQuota limit scope ID is not valid.
9314003QUOTA_LIMIT_NOT_FOUNDNOT_FOUNDQuota limit not found.
9314004QUOTA_LIMIT_ALREADY_EXISTSALREADY_EXISTSA quota limit already exists for this scope and metric.
9314005QUOTA_LIMIT_NOT_MARKED_FOR_DELETIONFAILED_PRECONDITIONQuota limit must be marked for deletion before removal.
9315001GRANT_TARGET_NOT_VALIDINVALID_ARGUMENTCross-workspace pull grant target is not valid.
9315002GRANT_SOURCE_AND_TARGET_SAMEINVALID_ARGUMENTCross-workspace pull grant source and target must be different.
9315003GRANT_NOT_FOUNDNOT_FOUNDCross-workspace pull grant not found.
9315004GRANT_ALREADY_EXISTSALREADY_EXISTSA cross-workspace pull grant already exists for this source, target, and tag pattern.
9315005GRANT_NOT_MARKED_FOR_DELETIONFAILED_PRECONDITIONCross-workspace pull grant must be marked for deletion before removal.
9316001OCI_TOKEN_NOT_VALIDUNAUTHENTICATEDThe presented registry bearer token could not be verified.
9317001OCI_DIGEST_NOT_VALIDINVALID_ARGUMENTThe digest is not well formed.
9317002OCI_DIGEST_ALGORITHM_NOT_SUPPORTEDINVALID_ARGUMENTThe digest algorithm is not supported.
9318001OCI_MANIFEST_SIZE_NOT_VALIDINVALID_ARGUMENTThe manifest exceeds the 4 MiB ceiling.
9318002OCI_MANIFEST_ALREADY_EXISTSALREADY_EXISTSA manifest with this digest already exists in the repository.
9318003OCI_MANIFEST_DIGEST_NOT_VALIDINVALID_ARGUMENTThe manifest digest is not valid.
9318004OCI_MANIFEST_UNKNOWNNOT_FOUNDNo manifest under that tag or digest that this client can be served.
9319001OCI_TAG_NAME_NOT_VALIDINVALID_ARGUMENTThe tag name is not valid.
9320001OCI_BLOB_STATE_TRANSITION_NOT_VALIDFAILED_PRECONDITIONThe OCI blob cannot move to the requested storage state.
9320002OCI_BLOB_SIZE_NOT_VALIDINVALID_ARGUMENTThe OCI blob size is not valid.
9320003OCI_BLOB_OBJECT_NAME_NOT_VALIDINVALID_ARGUMENTThe OCI blob object name is required.
9320004OCI_BLOB_UNKNOWNNOT_FOUNDThe repository does not hold a blob with this digest.
9320005OCI_BLOB_RANGE_NOT_SATISFIABLEINVALID_ARGUMENTThe requested byte range names no byte the OCI blob holds.
9321001OCI_REPOSITORY_REFERENCE_NOT_RESOLVABLENOT_FOUNDThe OCI repository reference could not be resolved.
9322001WORKSPACE_STATE_NOT_RECOGNISEDFAILED_PRECONDITIONThe workspace lifecycle state reported by taxonomy is not recognised.
9324001OCI_FIXTURE_LAYOUT_NOT_READABLEFAILED_PRECONDITIONThe OCI fixture layout could not be read.
9324002OCI_FIXTURE_IMAGE_NOT_NAMEDFAILED_PRECONDITIONThe OCI fixture layout names no image to import.
9324003OCI_FIXTURE_DOCUMENT_NOT_AVAILABLEFAILED_PRECONDITIONThe OCI fixture layout holds no document at the address referenced.
9325001OCI_SCOPE_NOT_VALIDINVALID_ARGUMENTThe OCI scope is not valid.
9605001UNKNOWN_SCHEMA_VERSIONDATA_LOSSSchema version is not recognized.
9605002REGISTRY_OPERATION_NOT_FOUNDNOT_FOUNDThe registry operation was not found.
9605003UNKNOWN_REGISTRY_OPERATION_RESOURCE_TYPEDATA_LOSSThe registry operation resource type is not recognized.
9605004CREDENTIAL_RECORD_MISSING_EXPIRYDATA_LOSSThe credential record is missing its required expiry timestamp.
9606001UNKNOWN_INTEGRATION_VERSIONINVALID_ARGUMENTThe integration version is not recognized.
9606002UNKNOWN_TAXONOMY_EVENTINVALID_ARGUMENTThe taxonomy event type is not recognized.
9606003UNKNOWN_MESSAGE_TYPEINVALID_ARGUMENTThe consumed message type is not recognized.
9606004UNKNOWN_IAM_EVENTINVALID_ARGUMENTThe iam event type is not recognized.
9606005UNSUPPORTED_DATA_UNITINVALID_ARGUMENTThe registry data unit is not supported.
9607001HARBOR_UNSUPPORTED_FILTER_FIELDINVALID_ARGUMENTFilter field is not supported by Harbor.
9607002HARBOR_UNSUPPORTED_FILTER_OPERATORINVALID_ARGUMENTFilter operator is not supported by Harbor.
9607003HARBOR_UNSUPPORTED_FILTER_EXPRESSIONINVALID_ARGUMENTFilter expression type is not supported by Harbor.
9607005HARBOR_UNREACHABLEUNAVAILABLEHarbor is unreachable.
9607006HARBOR_PERMISSION_DENIEDPERMISSION_DENIEDHarbor rejected the request (permission denied).
9607007HARBOR_UNAVAILABLEUNAVAILABLEHarbor is temporarily unavailable.
9607008HARBOR_PROJECT_OPERATION_FAILEDUNAVAILABLEHarbor project operation failed.
9607009HARBOR_INVALID_TIMESTAMPDATA_LOSSHarbor returned a timestamp the adapter cannot read.
9607010HARBOR_RESOURCE_NOT_FOUNDNOT_FOUNDHarbor does not have the requested resource.
9607011HARBOR_RESOURCE_ALREADY_EXISTSALREADY_EXISTSHarbor already has the requested resource.
9607012HARBOR_REQUEST_REJECTEDINVALID_ARGUMENTHarbor rejected the request.
9607013HARBOR_REQUEST_TIMED_OUTDEADLINE_EXCEEDEDHarbor did not answer within the request deadline.
9608001QUOTA_EXCEEDEDRESOURCE_EXHAUSTEDRegistry storage quota exceeded.
9608002SCAN_NOT_AVAILABLEFAILED_PRECONDITIONArtifact scan report is not yet available.
9610001TOKEN_REALM_URL_NOT_CONFIGUREDFAILED_PRECONDITIONregistry.oci.token-realm-url must be a non-blank URL: it is the only address a client is ever given for the token endpoint.
9610002HOSTNAME_NOT_CONFIGUREDFAILED_PRECONDITIONregistry.oci.hostname must be non-blank: it names the service in every bearer challenge and appears in every image reference users type.
9610003TOKEN_PUBLIC_KEY_NOT_CONFIGUREDFAILED_PRECONDITIONregistry.oci.token-public-key must be a non-blank PEM public key: it is the only thing distinguishing a token this platform issued from one an attacker signed.

Codes that reach you on an operation, not on a call

Section titled “Codes that reach you on an operation, not on a call”

These never appear as the status of a request. They record why a long-running operation did not finish, so they arrive in the operation record’s errors list while the call that started it succeeded.

CodeReasonDescription
9302004ARTIFACT_SCAN_FAILEDThe vulnerability scanner failed to complete the scan.
9302005ARTIFACT_SCAN_TIMED_OUTThe vulnerability scan did not complete within the scan timeout.
9323001OCI_FIXTURE_BLOB_BYTES_NOT_WRITTENThe fixture blob’s bytes were not written to storage.

None of these is ever a request’s error_code. They say why something further down refused, and they surface in one of two places: the errors list of an operation record, or the detail of the error actually returned, written as code:reason. Read them as the cause behind the status you were given.

CodeReasonDescription
9302004ARTIFACT_SCAN_FAILEDThe vulnerability scanner failed to complete the scan.
9302005ARTIFACT_SCAN_TIMED_OUTThe vulnerability scan did not complete within the scan timeout.
9323001OCI_FIXTURE_BLOB_BYTES_NOT_WRITTENThe fixture blob’s bytes were not written to storage.
9609001REGISTRY_BUCKET_NOT_ENSUREDThe workspace’s managed registry bucket could not be ensured.