Skip to content

Error codes ​

Branch on error.code. A wrong channel token is not 403. A missing store listing has no JSON code. Hover copy matches the docs-site ErrorCode component.

codeHTTP (when stable)Meaning
PROJECT_NOT_FOUND404Project identity missed or alias expired
VERSION_NOT_FOUND404Version missing
VERSION_LINE_NOT_FOUND404No line for that os/arch
VERSION_NOT_VISIBLE404/409Version not visible to the client (draft, packs not ready, or gray miss)
VERSION_REVOKED409Revoked with no safe target
NO_SAFE_TARGET409No safe target
INTERMEDIATE_UNAVAILABLE409Min-source hop missing, not ready, cyclic, or more than 8 hops
MIN_OS_NOT_MET409OS/API below the current line floor
CHANNEL_CONFLICT409Idempotent create channel mismatch
UNAUTHORIZED401Missing/invalid credentials
FORBIDDEN403Insufficient permission (including project-only access to /admins, /geoip, /nodes)
PRECONDITION_FAILED412If-Match / ETag; not POST check
HW_REV_INCOMPATIBLE409hw_rev out of range
RATE_LIMITED429Too many requests; honor Retry-After
CHANGELOG_QUERY_INVALID400Illegal changelog query
NOT_FOUND404Generic missing resource
NOT_READY503/400Service or Passkey not ready. Either empty webauthn_rp_id or webauthn_origins makes Passkey routes return this code (HTTP 503)
INTERNAL_ERROR500Internal error
INVALID_REQUEST400Illegal body/fields (including non-.mmdb, caps, unknown matrix pair, duplicate listing)
INVALID_QUERY_PARAM400Illegal query (including announcement version and unknown changelog channel)
ENGINE_MISMATCH400Engine vs identity mismatch
ARTIFACT_REQUIRED400Publish rejected: no ready version line
CHANNEL_SUFFIX_MISMATCH400Prerelease suffix vs channel; stable cannot use a prerelease suffix
VERSION_ALREADY_EXISTS409Duplicate version in project
GRAY_NOT_ALLOWED_ON_CRITICAL400Gray on critical version
PACKAGE_TYPE_IMMUTABLE409package_type locked after a published line exists
COMPARE_ENGINE_IMMUTABLE409compare_engine locked after first publish
INVALID_PATH400Illegal path
ARTIFACT_IMMUTABLE409Published artifact immutable (yank the line first)
HW_REV_UNKNOWN400Unregistered hw_rev
DELTA_ALGO_UNSUPPORTED400Unknown delta algo
DELTA_SAME_VERSION400Delta source equals target
TOTP_RATE_LIMITED429TOTP attempts exhausted in one 30s period
UPLOAD_INCOMPLETE400Upload incomplete for this operation
CHANNEL_NOT_FOUND404Channel missing
SYSTEM_CHANNEL409System channels alpha/beta/stable cannot be deleted
CHECKSUM_MISMATCH400Declared SHA-256 mismatch
JOB_NOT_FOUND404Job missing
JOB_FAILED409/500Async job failed
AUTO_PUBLISH_PENDING409auto_publish_when is not fully ready yet
ZIP_LAYOUT_INVALID400Zip layout is not os/arch/… (missing segments, unknown ids or traversal)
ADMIN_NOT_FOUND404Admin missing
USERNAME_TAKEN409Username taken
LAST_ADMIN409Cannot delete last admin
LAST_OWNER400Cannot remove last owner
MEMBER_NOT_FOUND404Member missing
CLIENT_NOT_FOUND404Roster client missing
GEOIP_NOT_FOUND404GeoIP database missing
LANGUAGE_TAKEN409Language code taken
LANGUAGE_NOT_FOUND404Language missing

DELTA_SAME_VERSION comes from console locales and is not in the admin OpenAPI Error.code enum; treat it as “source equals target”. Excluded frontend-only NETWORK_ERROR / HTTP_ERROR / UNKNOWN_ERROR. Missing store listings have no JSON code.