Ulsav Docs

Problem codes

Every code the API returns in an RFC 9457 problem response, with the status that carries it

Every error response carries one of 131 stable codes. The type of a problem points at that code's page, so a response explains itself. Branch on code, never on the human-readable detail.

The envelope itself is described in errors.

400 Bad Request

CodeMeaning
api_key_capability_human_onlyAPI keys cannot carry key-management capabilities
api_key_expiry_invalidAPI key expiry must be in the future
api_key_name_invalidAPI key name must be between 1 and 80 characters
api_key_origin_invalidallowed origins must be scheme://host[:port] with no path or wildcard
assignment_invalidmemberId and roleKey are required
capabilities_invalidrole capabilities must be known named capabilities
category_invalidthe event category is not in the active catalog
checkin_invalidcheck the check-in session details
domain_invalidcheck the domain details
email_domain_invalidenter a valid email domain
email_domain_not_verifiedemail domain ownership is not yet proven
event_invalidcheck the event details
event_not_publishablethe event is missing required details or a valid pass
hostname_invalidenter a valid hostname; Ulsav subdomains and internal hosts are not allowed
idempotency_key_requiredIdempotency-Key is required for a replay
identity_invalidenter a valid email address or E.164 phone number
identity_provider_invalidcheck the identity provider configuration
invalid_actionthe bulk action is not supported
invalid_cursorthe cursor is invalid
invalid_membershipthe collection membership is invalid
invalid_requestthe request could not be encoded
invalid_series_orderseries ordering must list exactly its member events
invite_invalidinvitation token is required
location_invalidthe location query is invalid
organization_invalidcheck the Organization profile values
pass_sale_window_invalidthe Pass sale window must fall before the end of the Event
registration_config_invalidcheck the registration configuration
request_invalidThe request body, query, or path failed validation.
requirement_invalidcheck the requirement configuration
reschedule_sessions_requiredinclude every EventSession in the reschedule plan
scope_invalidscopeType must be a canonical Scope
search_invalidthe search criteria are invalid
sso_redirect_invalidthis host is not a registered SSO callback
sso_response_missingthe SAML response is missing
topic_invalidone or more topics are invalid
unsupported_grant_typethe grant type is not supported
upload_invalidthe upload metadata is invalid or expired
venue_invalidthe venue query is invalid
webhook_event_type_invalidselect valid webhook event types
webhook_filter_invalidcheck the webhook filters
webhook_invalidcheck the webhook configuration
webhook_url_invalidenter a public https endpoint

401 Unauthorized

CodeMeaning
api_key_expiredthis API key has expired
api_key_invalidthis API key is invalid
api_key_revokedthis API key has been revoked
authentication_requiredauthentication required
oauth_invalidthe OAuth authorization is invalid or expired
otp_invalidthe code is invalid or expired
session_invalidsession is invalid or expired

403 Forbidden

CodeMeaning
api_key_authority_exceedscannot grant capabilities beyond your own authority
api_key_forbiddenthis API key lacks the required capability
api_key_management_forbiddenAPI-key credentials cannot manage API keys
api_key_scope_deniedthis API key is not scoped to the requested resource
capability_deniedthis action requires an additional capability
event_suspendedthis event is suspended by Ulsav policy
forbiddenyou do not have access to this organization
insufficient_scopethe token lacks the profile scope
organization_suspendedthis Organization is suspended
platform_suspendedAPI keys are temporarily suspended
role_escalationcannot grant capabilities beyond your own authority
role_protectedthe owner role is protected

404 Not Found

CodeMeaning
api_key_not_foundAPI key not found
check_in_session_not_foundcheck-in session not found
domain_not_founddomain not found
eligibility_not_foundorganization eligibility not found
email_domain_not_foundemail domain not found
event_group_not_foundevent group not found
event_group_series_not_foundevent group series not found
event_not_foundevent not found
event_series_not_foundevent series not found
host_not_foundhost does not resolve to a target
identity_provider_not_foundidentity provider not found
invite_not_foundinvitation not found
location_not_foundno city found near that location
member_not_foundmember not found
not_foundthe bulk operation was not found
oauth_provider_not_foundOAuth provider not configured
organization_not_foundOrganization not found
pass_not_foundpass not found
registration_config_not_foundregistration configuration not found
requirement_not_foundrequirement not found
role_not_foundrole not found
session_not_foundsession not found
sso_provider_not_foundno SSO provider is configured for this host
target_not_foundthe target does not exist in this organization
webhook_delivery_not_foundwebhook delivery not found
webhook_not_foundwebhook endpoint not found

409 Conflict

CodeMeaning
canonical_domain_existsthis target already has a canonical domain
category_lockedthe event category cannot change after publication
domain_disabledthis domain is disabled
draft_onlythis operation is only available while the event is a draft
email_domain_takenthis email domain is already claimed by an organization
event_not_endedthe event has not ended yet
event_not_saleableevent sales are not open
hostname_takenthis hostname is already connected
idempotency_conflictthis Idempotency-Key was already used with different details
idempotency_key_conflictthis idempotency key belongs to another delivery
identity_conflictthis Identity belongs to another Account
identity_provider_existsthis organization already has an identity provider
identity_resolution_requiredthis Identity already belongs to another Account; resolution:
invite_existsa pending invite already exists for this contact
last_identityan Account must retain at least one Identity
last_owner_requiredthe organization must keep at least one owner
lifecycle_transition_invalidthis lifecycle transition is not allowed from the current state
material_change_requiredthis change requires the material-change workflow
organization_not_eligible_for_paid_publishingthe Organization must complete KYC and settlement verification before selling paid passes
registration_policy_conflictsome accounts already hold more than one place in this event
reschedule_conflictthe reschedule plan conflicts with the new Event dates
role_existsa role with this key already exists
role_in_usethis role still has active assignments
session_referencedthe session is still selected by a pass
slug_takenthis Organization slug is already taken
subdomain_takenthis event group subdomain is already taken
webhook_endpoint_disabledenable this endpoint before replaying a delivery
webhook_limit_reachedthis organization has reached its webhook endpoint limit

410 Gone

CodeMeaning
invite_expiredthis invitation has expired

422 Unprocessable Entity

CodeMeaning
bulk_request_invalidthe bulk request is not valid

429 Too Many Requests

CodeMeaning
otp_rate_limitedwait before requesting another code
rate_limitedtoo many requests; try again later
webhook_test_rate_limitedat most 5 test deliveries are allowed per minute

500 Internal Server Error

CodeMeaning
account_load_failedload account
categories_unavailablecategories are unavailable
discovery_unavailablediscovery is unavailable
internal_errorThe server could not complete the request.
request_context_unavailablerequest context unavailable
requirements_unavailablerequirement scopes are not configured
sso_secret_unavailableSSO secret encryption is not configured
topics_unavailabletopics are unavailable

502 Bad Gateway

CodeMeaning
sso_unavailablethe identity provider could not complete authentication

503 Service Unavailable

CodeMeaning
geocoder_unavailablecity lookup is unavailable
webhook_secret_unavailablewebhook secret encryption is not configured

On this page