Error Codes

Reference of Anchore Enterprise error codes with their message, HTTP status, and remediation steps.

Anchore Enterprise returns a structured error code with most API error responses. Each code has the form XX###, where the two-letter prefix identifies the domain that raised the error (for example, AP for Applications) and the number identifies the specific condition. A code ending in 000 is the general, catch-all error for that domain.

Error responses also include an anchore_request_id. When contacting Anchore support, include both the error code and the request id so the originating request can be located in the service logs.

The codes below are grouped by prefix and listed in ascending order within each group.

AP — Applications

CodeMessageHTTPRemediation
AP000General Application Error500Inspect server logs around the request_id for the underlying error.
If the failure is reproducible, capture the request and contact support.
AP501Application Not Found404Verify the application id (UUID) is correct.
List applications under the same account to confirm the application exists.
Confirm the account header on the request matches the account that owns the application.
AP502Application Has Versions409Re-issue the delete with the force flag to cascade-delete the application’s versions and assets.
Or delete each version under the application before deleting the application itself.
AP503Policy Not Found404Verify the policy_id refers to an existing policy in the catalog service.
Send null for policy_id to clear the policy and inherit the account default.
Omit the policy_id field on update to leave the existing policy unchanged.
AP504Policy Fetch Failed502Retry the request — the catalog service may be transiently unavailable.
Verify the catalog service is healthy.
Inspect server logs around the request_id for the upstream error detail.
AP505Application Name Conflict409Pick a different name that’s unique within the account.
Or update the existing application instead of creating a new one.
AP506Application Field Validation Failed422Inspect the detail array for per-field validation messages.
Each entry’s loc identifies the offending field; msg describes the problem.
Resend the request with valid values.

AS — Assets & SBOMs

CodeMessageHTTPRemediation
AS000General Asset Error500Inspect server logs around the request_id for the underlying error.
If the failure is reproducible, capture the request and contact support.
AS501Asset Not Found404Verify the asset id (UUID) is correct under the given application id and version id.
List assets under the version to confirm the asset exists.
If the asset was just created via SBOM upload, wait for the import job to complete first.
AS502Asset SBOM Not Found404Confirm the asset has an associated SBOM artifact in its artifacts list.
If the artifact exists but its body is missing, the object-store key has been removed externally — re-upload the SBOM to re-create it.
AS503Asset Name Conflict409Pick a different asset name that’s unique within the application version.
Or update the existing asset instead of creating a new one.
AS504Asset Artifact Not Found404Re-fetch the asset and confirm its artifacts list is non-empty.
If the artifact was deleted out-of-band, re-upload the SBOM to re-create it.
AS505Invalid Annotations422Send annotations as a flat object of string keys and string values (use null as a value to delete a key on update).
Cap each annotation key at 150 characters and each value at 1000 characters.
Cap total annotations on an asset at 10 entries.
Inspect the response message for the specific limit that was breached.
AS510SBOM Parse Failed400Inspect the AssetAddFailed event’s error_reason for the parser’s specific message.
Validate the SBOM with the format’s reference tooling before re-uploading.
AS511SPDX Parse Failed400Verify required SPDX fields are present (spdxVersion, SPDXID, documentNamespace, creationInfo).
Validate the document with the SPDX online validator or pyspdxtools.
AS512CycloneDX Parse Failed400Validate the document against the CycloneDX schema for its specVersion.
Confirm the document is well-formed JSON/XML before re-uploading.
AS513Unsupported CycloneDX Spec Version400Re-export the SBOM targeting one of the supported specVersion values listed in the error_reason.
AS514Invalid CycloneDX XML Structure400Verify the document parses as XML and uses the http://cyclonedx.org/schema/bom/&lt;version> namespace on the <bom> root.
AS515Unrecognised SBOM Format400Verify the file is a non-empty Syft JSON, SPDX JSON or tag-value, or CycloneDX JSON or XML document.
Inspect the AssetAddFailed event’s error_reason for the specific marker that was missing.
AS516Syft Parse Failed400Re-export the SBOM with a current Syft or anchorectl release (syft &lt;target&gt; -o syft-json / anchorectl image sbom).
Verify schema.version matches the format MAJOR.MINOR.PATCH (e.g. 16.0.39).

AU — Authentication

CodeMessageHTTPRemediation
AU000General Authentication Error401Inspect the response message for the underlying detail.
Confirm the request includes a valid Bearer token.
If the failure is reproducible with valid credentials, capture the request and contact support.
AU001Missing Authorization Header401Include an Authorization header on the request using the Bearer scheme.
If using a client SDK, confirm credentials are configured before issuing the call.
AU002Invalid Authorization Scheme401Use the Bearer scheme on the Authorization header (“Bearer <token>”).
Other schemes (Basic, Digest, etc.) are not accepted on internal endpoints.
AU003Authentication Not Configured401Wait for the service to finish bootstrapping and retry.
Verify the service has a valid keys configuration (signing key or shared secret).
Check service logs for token manager initialization errors.
AU004Invalid or Expired Token401Obtain a new token and retry the request.
Confirm the client and server clocks are reasonably in sync; large drift can cause valid tokens to appear expired.
If using a long-lived token, confirm it has not been revoked.

AV — Application Versions

CodeMessageHTTPRemediation
AV000General Application Version Error500Inspect server logs around the request_id for the underlying error.
If the failure is reproducible, capture the request and contact support.
AV501Application Version Not Found404Verify the version id (UUID) is correct.
List versions under the parent application to confirm the version exists.
Confirm both the application id and the version id belong to the account on the request header.
AV502Application Version Has Assets409Re-issue the delete with the force flag to cascade-delete the version’s assets.
Or delete each asset under the version before deleting the version itself.
AV503Application Version Name Conflict409Pick a different version name that’s unique within the parent application.
Or update the existing version instead of creating a new one.
AV504Invalid Previous Version Reference422Confirm previous_version_id is the UUID of an existing version under the same application.
Send null (or omit the field) when there is no previous version.
AV505Application Version Referenced409Update the referencing version to clear or change its previous_version_id before deleting this one.
Or use the force flag on the delete — the server will null out the inbound references.
AV506Application Version Cannot Reference Itself422Set previous_version_id to the UUID of a different version under the same application.
Send null (or omit the field) when there is no previous version.

AX — Image Input

CodeMessageHTTPRemediation
AX500Image reference must be a non-empty string400
AX501Image reference has no pullable form400
AX502Cannot handle image input string400

CF — Configuration

CodeMessageHTTPRemediation
CF000General Configuration Error500Inspect server logs around the request_id for the underlying error.
If reproducible, capture the request and contact support.
CF301Configuration File Not Found500Verify the configuration file path matches the deployment’s filesystem layout.
Ensure the file exists and is readable by the service process.
Check the deployment’s volume mounts and environment overrides for the path.
CF302Configuration Validation Failed500Check the configuration file against the expected schema.
Review the validation errors in the response and the service logs for the offending fields.
Fix the offending values and restart the service.
CF303Required Environment Variable Not Found500Set the required environment variable before starting the service.
Confirm the service’s environment file or container env list includes the variable.
CF501Configuration API Disabled403Enable the API-driven configuration feature flag in the deployment’s config file.
Restart the service for the flag change to take effect.
CF502Configuration Key Not Found404Verify the configuration key name is correct.
Some keys are private to the service and not exposed via the API; consult the configuration documentation for the exposed surface.
CF503Configuration Key Not Editable403Confirm the key is documented as editable; immutable / system-internal keys must be set in the config file at deploy time.
If the key was recently demoted to read-only, capture the request and contact support.
CF504Configuration Key Blocked By Config File409Edit the value in the deployment’s config file and restart the service.
Or remove the key from the config file so the API can manage it (the service will use the default until set via API).
CF505Configuration Schema Validation Failed400Inspect the response message for the field and constraint that failed.
Submit a value matching the field’s documented type and bounds.
CF506Configuration Schema Inconsistency500Verify that every API-editable key produces a leaf value when a default RootConfig is flattened.
Check for recent changes to Optional fields or discriminated unions in the config models.
CF507Configuration Key Mismatch400Set the body’s key field to the same value as the URL path segment.
Or change the URL path segment to match the key already in the body.

DB — Database

CodeMessageHTTPRemediation
DB000General Database Error500Inspect server logs around the request_id for the underlying SQL error.
If the failure is reproducible, capture the request and contact support.
DB201Database Connection Failed500Verify the database connection string.
Ensure the database server is running and accessible.
Check network policies / firewalls between the service pod and the database.
DB202Database TLS Error500Verify TLS certificates are correctly configured.
Ensure the database supports the required TLS version.
If using a custom CA bundle, confirm the bundle is mounted on the service pod.
DB203EMS Not Enabled500Upgrade the database to Postgres 16 or greater.
Move the deployment to non-FIPS-enabled hosts.
Contact the Customer Success Team for assistance.
DB204Database Insert Conflict409Inspect the response message for the conflicting field.
Resubmit with a value that doesn’t collide with the existing row, or update the existing row instead.
DB205Unhandled Database Integrity Error500Inspect server logs around the request_id for the underlying constraint name.
If reproducible from a well-formed request, capture the request body and report a bug — this should be a 4xx with a typed code.

JB — Jobs

CodeMessageHTTPRemediation
JB000General Job Error500Inspect server logs around the request_id for the underlying error.
If the failure is reproducible, capture the request and contact support.
JB501Job Not Found404Verify the job id (UUID) is correct.
List jobs under the parent application to confirm the job exists.
Confirm the account header matches the account that submitted the job.
If the job is a workflow step (not the workflow root), it is intentionally hidden — fetch the parent workflow id instead.
JB502Job Not Found For Type404Confirm the job id matches a job whose type belongs to this endpoint’s category (e.g. SBOM-export endpoints only resolve SBOM-export jobs).
Use the generic job lookup endpoint to inspect the job’s actual type.
JB506Invalid Annotations JSON422Send the annotations form field as a JSON-encoded string of an object.
Check for unescaped quotes when embedding JSON in a multipart form field.
JB507Invalid Annotations Format422Send annotations as a flat object — no nested objects, no arrays, no numeric / boolean / null values.
Cast all values to strings client-side before encoding.
JB508App Version Not Found404Verify the app_version_id on the request body matches an existing version under the parent app.
List versions under the application to find the correct version id.
JB509Asset Not Found404Verify the asset_id on the request body matches an existing asset under the version.
List assets under the version to find the correct asset id.
JB513Cannot Cancel Workflow Step409Cancel the parent workflow job (its workflow_id is the same as its job_id) instead of the step.
The response message includes the parent workflow id you should target.
JB515Missing Username For Owner Filter400Send the x-anchore-username header on requests that use owned_by_me=true.
Or drop the owned_by_me parameter to list jobs across all users in the account.
JB516Export File Not Found404Re-submit the export job — the previous result has been garbage-collected or the disk it was on is gone.
Confirm the job status is complete before requesting the download.

JF — Job Framework

CodeMessageHTTPRemediation
JF000General Job Framework Error500Inspect server logs around the request_id for the underlying error.
If the failure is reproducible, capture the request and contact support.
JF501Framework Job Not Found404Verify the job id is correct.
List jobs through the job-framework admin surface to confirm the job exists.
JF502Framework Job Logs Not Found404Verify the job id is correct.
Logs may have been garbage-collected; for long-running diagnostics, capture logs while the job is still active.
JF503Framework Job Not Found For Cancel404Verify the job id is correct.
If the job has already terminated, no cancel is needed — re-fetch its status.
JF506Job Type Not Registered500Confirm the service is fully started — handler registration happens during bootstrap.
If the job type is new, verify the handler module is imported on service startup.
JF507Job Handler Exception500Inspect the job’s error_reason field for the handler’s specific exception.
Re-submit the job after addressing the underlying cause (bad input, missing data, transient upstream failure).
JF508Job Timeout Exceeded500Re-submit the job — repeated timeouts on the same input may indicate an unusually large payload or a degraded backing service.
If the job consistently times out, contact support to evaluate raising the per-type timeout for this deployment.
JF509Job Memory Limit Exceeded500Re-submit with a smaller input if the size of the input scales with memory.
Contact your system administrator if the failure persists at typical input sizes.
JF510Job CPU Limit Exceeded500Re-submit the job — the limit may have been hit due to noisy-neighbour scheduling on the worker pod.
If the failure repeats, contact your system administrator to evaluate raising worker resources.
JF511Worker Died500Check worker logs for crash details.
Ensure sufficient resources for workers.
Re-submit the job once the worker pool has stabilised.
JF512Workflow Type Not Registered500Confirm the service is fully started — workflow registration happens during bootstrap.
If the workflow type is new, verify its module is imported on service startup.
JF513Workflow Step Not Found500Inspect the workflow record’s step list to confirm the step was registered.
If reproducible, capture the workflow id and contact support.
JF514Job Retries Exhausted500Inspect the job’s error_reason for the failure that triggered every retry.
Address the underlying cause and re-submit the job from scratch.

PG — Pagination

CodeMessageHTTPRemediation
PG000General Pagination Error500Inspect the response message for the underlying detail.
If reproducible, capture the request and contact support.
PG501Invalid Pagination Cursor400Drop the cursor / token parameter to fetch the first page from scratch.
When paging, only ever send back the next_cursor / next_token value verbatim — don’t construct or modify cursors client-side.
If the cursor stops decoding mid-walk, it likely belongs to a different list query (filters or sort changed); restart pagination with the new criteria.

PK — Packages

CodeMessageHTTPRemediation
PK000General Package Error500Inspect server logs around the request_id for the underlying error.
If the failure is reproducible, capture the request and contact support.
PK501Package Not Found404Verify the package id is correct.
List packages under the version to confirm the package exists — packages are derived from the version’s SBOM, so absence usually means the package wasn’t in the SBOM.
PK502Invalid Package Filter422Inspect the response message — it lists the operators allowed for the field.
Switch to one of the listed operators, or pick a different field.
PK503Conflicting Package Type422Remove the type parameter and let it be inferred from namespace.
Ensure type matches the first segment of namespace.
PK504Advisory Has Multiple Related CVEs400Query each related CVE listed in the response message directly.
A singleton advisory (exactly one related CVE) or a bare CVE id is accepted.

PO — Policy

CodeMessageHTTPRemediation
PO000General Policy Error500Inspect server logs around the request_id for the underlying error.
If the failure is reproducible, capture the request and contact support.
PO501Policy Not Found404Verify the policy_id is correct.
Confirm the policy exists in the catalog service for this account.
PO502Policy Fetch Failed502Verify the catalog service is running and healthy.
If the application has an active_policy_id, verify the policy exists.
Retry the request — the upstream catalog service may be transiently unavailable.
PO503No Active Policy404Update the application to set an active_policy_id pointing to a valid policy.
Or configure an account-level default policy in the policy service so applications without an explicit policy fall back to it.
PO504Policy Evaluation Stale409Trigger a policy re-evaluation for this app version.
Retry the request after the evaluation job completes.

SE — Search & Filtering

CodeMessageHTTPRemediation
SE000General Search Error500Inspect the response message for the underlying detail.
If the failure is reproducible, capture the request and contact support.
SE501Unknown Filter Field422Check the OpenAPI documentation for the search endpoint to see the allowed field values.
For asset annotations, use the annotations.<key> dot-notation form.
Remove or correct the offending entry in the filters or sort array.
SE502Unsupported Filter Operator422Inspect the response message — it lists the operators allowed for the field.
Switch to one of the listed operators, or pick a different field.
SE503Invalid Filter Value Shape422Inspect the response message for the expected shape.
For the in operator, pass an array; for scalar comparators, pass a scalar matching the field’s type.
SE504Unsupported Sort Field422Inspect the response message — it lists the offending field.
Remove the sort entry, or pick a different field that supports ordering.

VS — Vulnerability Scanning

CodeMessageHTTPRemediation
VS001Grype rejected package input500Inspect the package’s purl/cpes for malformed values (URL-encoded delimiters, embedded sha256, etc.).
Re-upload a corrected SBOM.

VX — Vulnerability Annotations

CodeMessageHTTPRemediation
VX000General Vulnerability Annotation Error500Inspect server logs around the request_id for the underlying error.
If the failure is reproducible, capture the request and contact support.
VX501Vulnerability Annotation Not Found404Verify the vulnerability annotation id (UUID) is correct.
List annotations under the version to confirm the annotation exists.
Confirm both the application id and the version id belong to the account on the request header.
VX502Vulnerability Annotation Conflict409Look up the existing annotation by scope/vulnerability_id/package_* and update it instead.
Or change one of scope, vulnerability_id, package_name, package_version, or package_type so the new annotation has a unique tuple.

WK — Worker

CodeMessageHTTPRemediation
WK000General Worker Error500Inspect server logs around the request_id for the underlying error.
If the failure is reproducible, capture the request and contact support.
WK501Worker Pool Not Found404Verify the worker pool name is correct.
List worker pools to confirm the pool exists in this deployment.
Last modified August 17, 2026