Docs

Errors

Every error the API returns is the error envelope, a JSON object whose code says what went wrong. This page lists every code the server defines, generated from the API's error schemas, with what it means and the operations that can return it. An operation's error set, the codes it can return, is generated from the server's code.

The API document ties no code to an HTTP status: branch on code, not on the status.

Too many requests

These operations declare a 429 Too Many Requests response, with the error envelope as its body (rate limits):

Without a namespace

internal

An unexpected error occurred.

Every operation can return it.

not_implemented

This feature is not implemented yet.

Every operation can return it, except:

unavailable

The service could not complete the request right now. Try again.

Every operation can return it, except:

att

att.already_completed

The auth attempt is already completed and can no longer be changed.

No operation's error set includes it.

att.already_handed_off

The auth attempt was already handed off. No new handoff can be created and the previous token will only be returned if the same Idempotency-Key header is provided.

Returned by:

att.invalid_proof

The proof or request is invalid.

Returned by:

att.invalid_request

Invalid request.

Returned by:

att.invalid_state

The auth attempt is in an invalid state for the intended change.

Returned by:

att.not_completed

The auth attempt must be completed for any further action.

Returned by:

att.not_found

The auth attempt was not found.

Returned by:

att.proof_rejected

The proof was rejected.

Returned by:

att.sso_state_invalid

The SSO state is not valid.

No operation's error set includes it.

att.stale_challenge

The challenge is stale or was re-issued.

Returned by:

auth

auth.csrf_invalid

The request failed cross-site request forgery validation.

Returned by:

auth.unauthorized

The request lacks valid authentication credentials.

Every operation can return it, except:

brnd

brnd.invalid

Branding: invalid.

Returned by:

brnd.missing_project_id

Branding: missing project id.

Returned by:

brnd.not_found

Branding: not found.

Returned by:

brnd.permission_denied

Branding: requires an operator-grade token bound to the project (project.write or a branding.* scope).

Returned by:

claim

claim.no_personal_team

The user has no active personal team in the platform project.

Returned by:

claim.personal_team_not_active

The user's personal team in the platform project is not active.

Returned by:

claim.session_expired

The session has expired.

No operation's error set includes it.

claim.session_not_active

The session is not active: it has no verified factor or no resolved user.

No operation's error set includes it.

claim.session_wrong_project

The session does not belong to the platform project.

No operation's error set includes it.

claim_challenge

claim_challenge.invalid

The claim challenge is invalid. Expected a non-empty id, project id, and initiating secret hash.

Returned by:

claim_challenge.not_found

Claim challenge not found.

Returned by:

dep

dep.conflict

Deployment: the deployment it replaces does not match expected_deployment_id.

Returned by:

dep.invalid

Deployment: invalid.

Returned by:

dep.not_found

Deployment: not found.

Returned by:

dep.permission_denied

Deployment: requires an operator-grade token bound to the project (project.write or a deployment.* scope).

Returned by:

dep.variables_missing

Deployment: the release references variables its kind has no value for.

Returned by:

enc_key

enc_key.decrypt_failed

Failed to decrypt data.

Returned by:

enc_key.encrypt_failed

Failed to encrypt data.

Returned by:

enc_key.no_replacement_key

No replacement key was provided while retiring the current one.

No operation's error set includes it.

enc_key.not_found

Encryption key not found.

Returned by:

enc_key.unknown_alg

Unsupported encryption algorithm.

Returned by:

env

env.not_found

Environment not found.

No operation's error set includes it.

env.project_not_found

Project not found.

Returned by:

evt

evt.invalid

Event: invalid.

Returned by:

evt.not_found

Event: not found.

Returned by:

evt.permission_denied

Event: permission denied.

Returned by:

flow

flow.completed

Flow has already completed.

Returned by:

flow.cookie_expired

Flow cookie has expired.

Returned by:

flow.cookie_invalid

Flow cookie is missing or invalid.

Returned by:

flow.integrity

Flow state integrity violation.

Returned by:

flow.invalid_action

Action is not allowed on the current step.

Returned by:

flow.invalid_purpose

Unknown or unsupported flow purpose.

Returned by:

flow.not_found

Flow not found.

Returned by:

flow.restart_required

The flow must be restarted.

Returned by:

flow.session_conflict

Flow session version conflict.

No operation's error set includes it.

flow.sso_unavailable

Identity provider is unavailable.

No operation's error set includes it.

flow.unsupported

Flow feature is not supported.

Returned by:

flowdef

flowdef.invalid

Flow definition: invalid.

Returned by:

flowdef.missing_id

Flow definition: missing id.

Returned by:

flowdef.missing_project_id

Flow definition: missing project id.

Returned by:

flowdef.not_found

Flow definition: not found.

Returned by:

flowdef.permission_denied

Flow definition: the flow definition management API requires the project secret.

Returned by:

flowdef.purpose_mismatch

Flow definition: does not serve requested purpose.

Returned by:

flowdef.revision_conflict

Flow definition: another revision of the same flow was created at the same instant.

Returned by:

flowdef.schema_fetch_failed

Flow definition: failed to fetch schema.

Returned by:

grant

grant.already_exists

An unrevoked grant with this principal and relation already exists on the project.

Returned by:

grant.invalid

The grant request is invalid.

Returned by:

grant.not_found

Grant not found.

Returned by:

grant.permission_denied

Insufficient permissions to manage grants.

Returned by:

grant.principal_not_found

The principal could not be resolved.

Returned by:

idp

idp.discovery_failed

Identity provider connection: discovery failed.

No operation's error set includes it.

idp.endpoint_cleartext

Identity provider connection: an endpoint is not https.

Returned by:

idp.endpoints_partial

Identity provider connection: the endpoints are partially set.

Returned by:

idp.exchange_failed

Identity provider connection: the code exchange failed.

No operation's error set includes it.

idp.field_immutable

Identity provider connection: the field is fixed for the life of the connection.

Returned by:

idp.id_token_invalid

Identity provider connection: the id_token is invalid.

No operation's error set includes it.

idp.not_found

Identity provider connection: not found.

Returned by:

idp.permission_denied

Identity provider connection: the caller's project role does not allow this operation.

Returned by:

idp.protocol_block_missing

Identity provider connection: the protocol block is missing.

Returned by:

idp.revision_conflict

Identity provider connection: another revision of the same connection was created at the same instant.

Returned by:

idp.scopes_missing_openid

Identity provider connection: OIDC scopes must contain openid.

Returned by:

idp.subject_invalid

Identity provider connection: the subject claim is absent or not a string or number.

No operation's error set includes it.

idp.userinfo_failed

Identity provider connection: the userinfo request failed.

No operation's error set includes it.

origin

origin.invalid

Origin: must be scheme://host[:port], lowercase, with no path.

Returned by:

origin.kind_conflict

Origin: the pattern is already stored with a different kind.

Returned by:

origin.not_found

Origin: not found.

Returned by:

origin.permission_denied

Origin: permission denied.

Returned by:

origin.primary_not_exact

A primary origin is an exact URL, no wildcard.

Returned by:

origin.unbounded

Origin: a wildcard on a shared host needs a literal label of your own beside the host.

No operation's error set includes it.

pol

pol.invalid

Policy: invalid.

Returned by:

pol.not_found

Policy: not found.

Returned by:

pol.permission_denied

Policy: the caller's project role does not allow this operation.

Returned by:

pol.revision_conflict

Policy: another revision of the same policy was published at the same instant; retry.

Returned by:

proj

proj.already_claimed

The project is already claimed by a team.

Returned by:

proj.claim_expired

The claim challenge has expired.

Returned by:

proj.claim_window_expired

The project was not claimed within 14 days of creation and can no longer be claimed.

Returned by:

proj.last_owner

This user is the last active member of the team that owns a project. Add another member to that team, then try again.

Returned by:

proj.mismatch

The project named in the request is not the one the credential belongs to.

Returned by:

proj.missing_id

Project: missing id.

Returned by:

proj.name_invalid

The project name is invalid. Expected a non-empty string.

Returned by:

proj.not_found

Project not found.

Returned by:

proj.origin_not_allowed

The request origin is not an origin of this project.

Returned by:

proj.password_hash_invalid

The password hashing method is invalid.

Returned by:

proj.permission_denied

The project management API requires the project secret.

Returned by:

proj.preview_not_live

No live preview for this origin; run zitadel preview on this branch.

Returned by:

rel

rel.in_use

Release: still served by an origin.

Returned by:

rel.invalid

Release: invalid.

Returned by:

rel.not_deployed

Nothing is deployed to this origin.

Returned by:

rel.not_found

Release: not found.

Returned by:

rel.permission_denied

Release: requires an operator-grade token bound to the project (project.write or a release.* scope).

Returned by:

rel.project_not_found

Release: project not found.

Returned by:

rel.revision_not_found

Release: pinned revision does not exist.

Returned by:

rel.revision_unpinnable

Release: pinned revision declares no handle.

Returned by:

rel.revoked

The release this attempt runs on was revoked.

Returned by:

rel.unresolved_reference

Release: handle is not in the release.

Returned by:

req

req.invalid

The request is invalid and fails base validation (missing required fields, wrong types, failed regex, etc.). Check the details for more information.

Every operation can return it.

req.method_not_allowed

The operations at this path do not accept this method.

No operation's error set includes it.

req.not_found

No API operation matches this path.

No operation's error set includes it.

sch

sch.already_exists

A schema with the given id already exists.

Returned by:

sch.fetch_denied

The schema URL resolves to an address blocked by the egress policy.

Returned by:

sch.fetch_downgrade

Fetching the schema URL was redirected from https to http, which is not allowed.

Returned by:

sch.fetch_timeout

Fetching the schema URL timed out.

Returned by:

sch.fetch_too_large

The fetched schema document exceeds the configured size limit.

Returned by:

sch.fetch_too_many_redirects

Fetching the schema URL exceeded the redirect limit.

Returned by:

sch.invalid_request

Invalid request.

Returned by:

sch.not_found

Schema not found.

Returned by:

sch.permission_denied

The schema management API requires the project secret.

Returned by:

sch.revision_conflict

Another revision of the same object type was created at the same instant.

Returned by:

sess

sess.exchange_conflict

The exchange resulted in a conflict. Either the target session was revoked or verified factors could not be promoted consistently.

Returned by:

sess.invalid_handoff_token

The handoff token is invalid. Either the token does not exists, was already consumed or has expired.

Returned by:

sess.invalid_ttl

The session TTL is invalid. It must be positive and not exceed the configured maximum.

Returned by:

sess.not_found

The session was not found.

Returned by:

sess.permission_denied

Session: requires a session scope bound to the project.

Returned by:

sess.project_mismatch

The session belongs to a different project.

Returned by:

sess.token_creation_failed

The session token could not be created.

Returned by:

sess.token_invalid

The session token is invalid (either malformed or expired).

No operation's error set includes it.

sig_key

sig_key.not_found

Signing key not found.

No operation's error set includes it.

team

team.already_exists

A team with this name already exists in the project.

Returned by:

team.name_invalid

The team name is invalid. Expected a non-empty string of at most 200 characters.

Returned by:

team.owns_project

The team still owns a project and cannot be deactivated while it does.

Returned by:

team.permission_denied

The team management API requires the project secret.

Returned by:

team.project_not_found

Project not found.

Returned by:

team.team_not_found

Team not found.

Returned by:

tkn

tkn.invalid

The token is not valid.

Returned by:

tkn.invalid_tknid

Token identifiers do not match token type.

Returned by:

tkn.revoked

The token is not valid.

No operation's error set includes it.

user

user.already_exists

A user already exists with the given unique attributes.

Returned by:

user.attributes_invalid

The user's attributes do not satisfy the user schema.

No operation's error set includes it.

user.conflict

The user was modified concurrently, retry the request.

Returned by:

user.invalid

User invalid.

Returned by:

user.not_found

User not found.

Returned by:

user.password_empty

The password must not be empty.

Returned by:

user.password_invalid

The password provided is invalid.

No operation's error set includes it.

user.password_policy_violation

The password does not meet the password policy.

Returned by:

user.password_too_long

The password is too long for the project's password hashing method.

Returned by:

user.permission_denied

The user management API requires the project secret.

Returned by:

var

var.decryption_failed

Failed to decrypt variable.

No operation's error set includes it.

var.document_too_deep

Variable: document nests too deeply.

Returned by:

var.expansion_too_large

Variable: substitution exceeds the expansion budget.

No operation's error set includes it.

var.invalid_name

The name of the variable is invalid.

Returned by:

var.invalid_value

The value of the variable is invalid.

Returned by:

var.limit_exceeded

The variables of this kind would not fit in one deployment.

Returned by:

var.no_project_id

A variable must be owned by a project.

Returned by:

var.not_found

Variable: not found.

Returned by:

var.permission_denied

Variable: permission denied.

Returned by:

var.secret_not_whole_value

Variable: a secret can only be referenced as an entire value.

No operation's error set includes it.

Was this helpful?