# screenRIG problem types

> Canonical HTML: https://screenrig.ai/problems/

Every API error is an `application/problem+json` document. Its `type` member is one of the 87 addresses below; open it to see what the error means and what to do next.

## Problem types

- [free_project_limit](https://screenrig.ai/problems/free-project-limit/) — HTTP 409: Owner free-project limit reached
- [project_name_conflict](https://screenrig.ai/problems/project-name-conflict/) — HTTP 409: Project name already used in the organization
- [project_delete_blocked](https://screenrig.ai/problems/project-delete-blocked/) — HTTP 409: Project cannot be deleted in its current state
- [owner_required](https://screenrig.ai/problems/owner-required/) — HTTP 409: A responsible person is required
- [internal_error](https://screenrig.ai/problems/internal-error/) — HTTP 500: Internal server error
- [invalid_request](https://screenrig.ai/problems/invalid-request/) — HTTP 400: Request is invalid
- [unauthorized](https://screenrig.ai/problems/unauthorized/) — HTTP 401: Authentication is required
- [forbidden](https://screenrig.ai/problems/forbidden/) — HTTP 403: Request is not allowed
- [not_found](https://screenrig.ai/problems/not-found/) — HTTP 404: Resource was not found
- [method_not_allowed](https://screenrig.ai/problems/method-not-allowed/) — HTTP 405: Method is not allowed
- [idempotency_mismatch](https://screenrig.ai/problems/idempotency-mismatch/) — HTTP 409: Idempotency key does not match the original request
- [credential_issuance_expired](https://screenrig.ai/problems/credential-issuance-expired/) — HTTP 410: Credential issuance expired
- [user_email_conflict](https://screenrig.ai/problems/user-email-conflict/) — HTTP 409: Email address belongs to another person
- [provisioning_invalid](https://screenrig.ai/problems/provisioning-invalid/) — HTTP 404: Browser provisioning invalid
- [provisioning_expired](https://screenrig.ai/problems/provisioning-expired/) — HTTP 410: Browser provisioning expired
- [provisioning_consumed](https://screenrig.ai/problems/provisioning-consumed/) — HTTP 409: Browser provisioning consumed
- [provisioning_exchange_mismatch](https://screenrig.ai/problems/provisioning-exchange-mismatch/) — HTTP 409: Browser provisioning exchange mismatch
- [browser_already_paired](https://screenrig.ai/problems/browser-already-paired/) — HTTP 409: Browser already paired
- [handoff_code_invalid](https://screenrig.ai/problems/handoff-code-invalid/) — HTTP 404: Browser handoff code invalid
- [handoff_code_expired](https://screenrig.ai/problems/handoff-code-expired/) — HTTP 410: Browser handoff code expired
- [handoff_session_rate_limited](https://screenrig.ai/problems/handoff-session-rate-limited/) — HTTP 429: Browser handoff session rate limited
- [handoff_session_conflict](https://screenrig.ai/problems/handoff-session-conflict/) — HTTP 409: Browser handoff session conflict
- [browser_link_not_claimed](https://screenrig.ai/problems/browser-link-not-claimed/) — HTTP 409: Browser link not claimed
- [browser_link_project_mismatch](https://screenrig.ai/problems/browser-link-project-mismatch/) — HTTP 403: Browser link project mismatch
- [origin_not_allowed](https://screenrig.ai/problems/origin-not-allowed/) — HTTP 403: Origin is not allowed
- [resource_conflict](https://screenrig.ai/problems/resource-conflict/) — HTTP 409: Resource state conflicts with the request
- [revision_conflict](https://screenrig.ai/problems/revision-conflict/) — HTTP 412: Resource revision does not match
- [invalid_range](https://screenrig.ai/problems/invalid-range/) — HTTP 416: Requested byte range is not satisfiable
- [quota_exceeded](https://screenrig.ai/problems/quota-exceeded/) — HTTP 413: Project content quota is exceeded
- [payment_required](https://screenrig.ai/problems/payment-required/) — HTTP 402: Prepaid credit is required
- [rate_limited](https://screenrig.ai/problems/rate-limited/) — HTTP 429: Request rate is too high
- [dependency_unavailable](https://screenrig.ai/problems/dependency-unavailable/) — HTTP 500: Required dependency is unavailable
- [dependency_timeout](https://screenrig.ai/problems/dependency-timeout/) — HTTP 500: Required dependency did not answer in time
- [schema_incompatible](https://screenrig.ai/problems/schema-incompatible/) — HTTP 500: Database schema is incompatible
- [not_ready](https://screenrig.ai/problems/not-ready/) — HTTP 500: Service is not ready
- [server_draining](https://screenrig.ai/problems/server-draining/) — HTTP 421: Service is draining
- [manifest_degraded](https://screenrig.ai/problems/manifest-degraded/) — HTTP 500: Runtime manifest projection is degraded
- [screenshot_unavailable](https://screenrig.ai/problems/screenshot-unavailable/) — HTTP 409: Screenshot is not available
- [identity_invalid](https://screenrig.ai/problems/identity-invalid/) — HTTP 400: Player public key is invalid
- [identity_conflict](https://screenrig.ai/problems/identity-conflict/) — HTTP 409: Player public key does not match the enrollment
- [enrollment_bound](https://screenrig.ai/problems/enrollment-bound/) — HTTP 409: Player public key is already bound to a project
- [proof_invalid](https://screenrig.ai/problems/proof-invalid/) — HTTP 401: Player identity proof is invalid
- [screen_archived](https://screenrig.ai/problems/screen-archived/) — HTTP 409: Screen is archived
- [screen_archive_required](https://screenrig.ai/problems/screen-archive-required/) — HTTP 409: Archive the screen instead of deleting or unbinding it
- [passkey_invalid](https://screenrig.ai/problems/passkey-invalid/) — HTTP 401: Passkey ceremony is invalid
- [passkeys_disabled](https://screenrig.ai/problems/passkeys-disabled/) — HTTP 403: Passkeys are disabled on this server
- [application_in_use](https://screenrig.ai/problems/application-in-use/) — HTTP 409: A live manifest still references an application release
- [agent_connection_invalid](https://screenrig.ai/problems/agent-connection-invalid/) — HTTP 404: Agent connection is invalid
- [agent_connection_expired](https://screenrig.ai/problems/agent-connection-expired/) — HTTP 410: Agent connection is expired
- [agent_connection_conflict](https://screenrig.ai/problems/agent-connection-conflict/) — HTTP 409: Agent connection is already resolved
- [agent_connection_not_approved](https://screenrig.ai/problems/agent-connection-not-approved/) — HTTP 409: Agent connection is not approved
- [agent_connection_cancelled](https://screenrig.ai/problems/agent-connection-cancelled/) — HTTP 410: Agent connection was cancelled
- [agent_limit_exceeded](https://screenrig.ai/problems/agent-limit-exceeded/) — HTTP 409: Agent limit is exceeded
- [agent_lockout_risk](https://screenrig.ai/problems/agent-lockout-risk/) — HTTP 409: Disconnecting the last active agent risks lockout
- [recovery_ambiguous](https://screenrig.ai/problems/recovery-ambiguous/) — HTTP 409: Device identifier is attached to more than one screen
- [recovery_expired](https://screenrig.ai/problems/recovery-expired/) — HTTP 410: Screen recovery offer has expired
- [recovery_not_offered](https://screenrig.ai/problems/recovery-not-offered/) — HTTP 404: No screen recovery is pending
- [invitation_limit_reached](https://screenrig.ai/problems/invitation-limit-reached/) — HTTP 409: Project has the maximum outstanding invitations
- [version_required](https://screenrig.ai/problems/version-required/) — HTTP 409: Playlist requires a newer API version
- [price_change_pending](https://screenrig.ai/problems/price-change-pending/) — HTTP 409: Campaign is paused until new rates are accepted
- [quote_stale](https://screenrig.ai/problems/quote-stale/) — HTTP 409: Advertising quote is stale or expired
- [insufficient_credits](https://screenrig.ai/problems/insufficient-credits/) — HTTP 402: Eligible credits are insufficient
- [self_deal](https://screenrig.ai/problems/self-deal/) — HTTP 409: A project cannot buy advertising in its own network
- [invitation_invalid](https://screenrig.ai/problems/invitation-invalid/) — HTTP 404: Invitation is invalid
- [invitation_expired](https://screenrig.ai/problems/invitation-expired/) — HTTP 410: Invitation is expired
- [invitation_consumed](https://screenrig.ai/problems/invitation-consumed/) — HTTP 409: Invitation is already accepted
- [invitation_email_mismatch](https://screenrig.ai/problems/invitation-email-mismatch/) — HTTP 403: Invitation belongs to a different email address
- [reauthentication_required](https://screenrig.ai/problems/reauthentication-required/) — HTTP 401: Fresh sign-in proof is required
- [member_limit_reached](https://screenrig.ai/problems/member-limit-reached/) — HTTP 409: Project has the maximum members
- [last_credential](https://screenrig.ai/problems/last-credential/) — HTTP 409: Last sign-in method cannot be removed
- [no_project](https://screenrig.ai/problems/no-project/) — HTTP 409: No current project is selected
- [billing_unavailable](https://screenrig.ai/problems/billing-unavailable/) — HTTP 404: This billing action is not available
- [feature_unavailable](https://screenrig.ai/problems/feature-unavailable/) — HTTP 404: This feature is not available on this server
- [user_binding_stale](https://screenrig.ai/problems/user-binding-stale/) — HTTP 409: Claiming user email binding is stale
- [session_expired](https://screenrig.ai/problems/session-expired/) — HTTP 401: Runtime session is expired or no longer current
- [credential_revoked](https://screenrig.ai/problems/credential-revoked/) — HTTP 401: Device credential no longer binds this device to a screen
- [proof_clock_skew](https://screenrig.ai/problems/proof-clock-skew/) — HTTP 401: Player identity proof is outside the accepted time window
- [key_retired](https://screenrig.ai/problems/key-retired/) — HTTP 401: Player key was replaced and its grace window has closed
- [assignment_not_found](https://screenrig.ai/problems/assignment-not-found/) — HTTP 404: Screen has no playlist assignment
- [upgrade_required](https://screenrig.ai/problems/upgrade-required/) — HTTP 403: Player version is below the supported minimum
- [reboot_unsupported](https://screenrig.ai/problems/reboot-unsupported/) — HTTP 409: Screen cannot reboot remotely
- [webhook_limit_reached](https://screenrig.ai/problems/webhook-limit-reached/) — HTTP 409: Project has the maximum webhooks
- [webhook_url_rejected](https://screenrig.ai/problems/webhook-url-rejected/) — HTTP 400: Webhook URL must be HTTPS on a public Internet host
- [support_conversation_closed](https://screenrig.ai/problems/support-conversation-closed/) — HTTP 409: Support conversation is closed
- [demo_slot_unavailable](https://screenrig.ai/problems/demo-slot-unavailable/) — HTTP 409: Demo time is no longer available
- [agentid_claim_invalid](https://screenrig.ai/problems/agentid-claim-invalid/) — HTTP 400: AgentID claim is invalid or expired
- [agentid_already_enrolled](https://screenrig.ai/problems/agentid-already-enrolled/) — HTTP 409: AgentID is already enrolled

- [Problem registry YAML](https://screenrig.ai/docs/api/problems.yaml)
- [API reference](https://screenrig.ai/docs/api/#problems)
