本文へ移動
runlot
リファレンスError code

Error code

The list of error codes the CLI prints in the error [code] … format. In your program, branch on code, and use message only for display.

The source of truth for this page is the error definitions in the runlot server source. The docs build generates this content from that source.

Reading error responses

All failed API responses use the same structure.

{ "error": { "code": "database_required", "message": "Create a database first" } }

The CLI prints this response in the error [database_required] … format and exits with code 1. In automation scripts, branch on code. message is a description for users and can change at any time.

The same code can be returned with different HTTP status codes depending on the situation. When that applies, all of them are listed in the status code column.

Error code list (200)

CodeHTTP statusDescription
access_denied401The bypass secret for this deployment's access control is incorrect.
access_exchange_failed502The access check did not finish. Try again shortly.
access_mode_app_rules409access[…] (…) requires an org role or email domain, which mode app cannot provide —
access_required401This deployment has access control turned on, so you have to sign in first.
access_rule_denied403this path is restricted by the deployment's access rules
access_unavailable503The request was not served because access could not be checked. Try again shortly.
account_exists409an account already exists — use password reset to add or change its password
active_subscription409you still have an active paid subscription — cancel it on the billing screen first
admin_required403this account cannot open the operations console
ads_bad_decision400this decision is not valid any more
ads_origin_mismatch403this decision was issued for another origin
ads_origin_not_allowed403this origin is not listed for ads
ai_not_granted403 · 409AI is turned off for …/… — runlot ai grant, or set "ai": true in runlot.json and deploy once
already_member409The user is already a member of the organization. Change the role with a separate command.
already_pro409already on the Pro plan
app_error—The app could not answer this request. The cause is shown to members of the app's organization; look up the request ID in the dashboard.
app_restoring—The app's data is being restored. Try again in a few minutes.
app_starting—The app is starting. Try again in a few seconds.
app_unavailable—The app is not available on this server right now. Try again shortly.
approval_revoked409 · 410The isolated preview publication is no longer approved.
artifact_lock_unavailable503deployments are temporarily unavailable — try again shortly
audit_unavailable503the download could not be recorded; try again
backend—The service behind this binding did not answer. Try again shortly.
bad_event_id400query parameters must be valid URL-encoded values
bad_query400invalid release issue query
bad_request400The request format is invalid.
bad_signature403the webhook signature does not match
billing_off501credit top-up is not available
billing_unavailable502the payment service is not responding
blob_mismatch400blob … is … bytes, the list says …
blob_not_listed400blob … is not in this upload's file list
blobs_missing409… listed file(s) are not uploaded — upload them and commit again
browser_route_disabled403Browser capture is disabled for this route.
budget_exhausted429this organisation's usage budget is used up (…); serving resumes at …
build_not_queued409this build is … and cannot be cancelled
bundle_too_large—The bundle size exceeds the upload limit.
client_closed——
cold503The project is asleep and is being restored from its latest backup. Try again shortly.
compatibility_date_unsupported400compatibilityDate … exceeds this runtime's maximum of … — lower the value in runlot.json to … or earlier
confirm_mismatch400The confirmation string does not match the project name.
consent_required400client … is not first party and this deployment has no consent screen yet
console_timeout504the database did not answer within …
console_unreachable502could not reach this project's database: …
console_write_needs_session403write mode on the SQL console is only available to a dashboard session —
credit_unavailable——
cron_limit400the … plan allows up to … scheduled runs per org (currently …, this deployment adds …)
deploy_hook_off409push-to-deploy is not on for this repository — turn it on first
durable_objects_unavailable409Durable Objects are not available for this project yet — contact support to have them enabled
durable_objects_unverified503Durable Objects availability could not be checked — nothing was changed; try again shortly
email_unverified403verify your email before signing in
export_failed502 · 503The database export could not be created. Try again shortly.
forbidden403You are authenticated, but you do not have permission to perform this action.
front_not_ready503The server for this project is still loading its routing table. Try again shortly.
git_unavailable503the repository service is not reachable — pass commitSha
git_unreachable503failed to read the repository
github_token502The GitHub sign-in could not be completed. Start the sign-in again.
github_user502Your GitHub account details could not be read. Start the sign-in again.
google_token502failed to build Google token request: …
google_user502failed to build Google user request: …
heap_snapshot_failed502 · 409…
hijack_failed500The connection could not be upgraded to a WebSocket. Try again.
hostname_taken409This hostname is already in use by another project.
image_in_use409this picture is used by … — point those creatives elsewhere first
image_too_large—an ad illustration must be … KiB or less
input_too_large—input[…] is longer than … accepts (about … tokens)
insights_selection_unavailable503This occurrence's code insights are unavailable from the current control plane.
inspector_unavailable409…
insufficient_credit402the credit available now covers … with maxTokens up to …
insufficient_scope403this token does not carry the … scope
internal500An internal server error occurred. Try again shortly.
invalid_branding400… …
invalid_client400client_id … is not registered
invalid_code401that code did not match — check the clock on your phone and try the next one
invalid_company400enter your company (up to 200 characters)
invalid_credentials401email or password is incorrect
invalid_email400enter a valid work email address
invalid_message400tell us what you need (up to 5000 characters)
invalid_name400enter your name (up to 200 characters)
invalid_request400redirect_uri is not registered for client …
invalid_scope400… is not a scope
invalid_team_size400team size is too long
invalid_token400verification link is invalid or expired
invite_expired409the invite has expired — ask an admin to resend it
invite_revoked409the invite has been canceled — ask an admin for a new one
invite_used409the invite has already been accepted
isolated_preview_locked403An isolated HTTP preview cannot be changed through ordinary project operations.
isolated_preview_not_promotable409Review and merge the fix branch, then deploy normally; an isolated execution cannot be promoted into its parent.
isolated_preview_private403This isolated HTTP preview accepts approved verification requests only.
isolated_preview_unavailable503Isolated HTTP preview execution is not configured on this installation.
last_admin409This member is the organization’s last admin. Changing their role would leave the organization without an admin.
license_project_limit409the licence allows … project(s) across the installation and … exist
license_user_limit409the licence allows … user(s) and … exist
login_domain_tls503the certificate for … has not been issued yet
login_relay_failed502the sign-in service did not answer
login_relay_refused403this request carries a login-domain relay signature that does not verify
login_relay_unavailable503sign-in on this domain is unavailable right now
managed_removed400"Use Runlot's app" is now its own provider — turn on the runlot provider instead (runlot auth provider runlot on)
managed_unavailable503managed … login is not configured
map_refresh_failed503could not confirm the deployment target before releasing traffic: …
method_not_allowed405use GET
mfa_expired401this sign-in step expired — start the sign-in again
no_core503This service is temporarily unavailable. Try again shortly.
no_credit402this organization has no AI credit — top up in the dashboard
no_enrollment409there is no enrollment to confirm — start by generating a secret
no_host400The request is missing the Host header.
no_oauth_issuer503connected-app sign-in is not configured on this deployment
no_oauth_key503connected-app sign-in is temporarily unavailable — try again shortly
no_payment_method409no saved payment method — top up once manually, and you can then turn on auto top-up with that card
no_placement503This project has not been deployed to a server yet. Run runlot deploy first.
no_profiler501this node has no profiler
no_retire501this node cannot prove runtime retirement
no_ses_hook501the SES webhook is disabled
no_totp_key503two-factor authentication is temporarily unavailable — try again shortly
node_unreachable502 · 409The server running this project could not be reached. Try again shortly.
not_a_member403 · 422This login code was issued for a different deployment. Start the login again.
not_failed409only a failed month can be retried (it is …)
not_found404The requested organization, project, or deployment could not be found.
not_granted409 · 404This project has no auth service connected.
not_hijackable500The connection could not be upgraded to a WebSocket. Try again.
not_owed409only an open or failed month can be waived (it is …)
not_pro409not on the Pro plan
not_ready503 · 409This server has not finished loading its configuration. Try again shortly.
not_routable503this address cannot be served right now
not_running404 · 409…
objects_unreachable502could not reach the object store: …
observability_forbidden403this needs the … permission on … — an org admin can grant it on the project's observability roles
oidc_discovery502could not read the identity provider's configuration: …
oidc_id_token502…
oidc_token502failed to build the token request: …
op_in_flight409 · 503The same operation is already in progress.
org_not_empty409this org still has … — remove them first, then delete the org
org_pays409this org is on a paid Pro subscription — cancel it before granting
org_slug_taken409This organization slug is already in use.
over_project_limit409this organization has … active projects and its plan allows … — deploys are paused until you disable or delete … of them, or upgrade the plan. Nothing has been deleted
passkey_failed401 · 400the passkey was not accepted
personal_org409you can't delete a personal org — this is the org created at your first login
plan_required403This plan allows
preview_db_mode_fixed409preview … already exists with db=… — delete it to change the database mode
preview_db_shared_unavailable409A project's database can only be attached to the project that owns it, so a preview cannot share it. Use db=branch for a copy, or db=none for a preview with no database.
preview_exists409This execution's child already exists; an uncertain execution is not replayed.
preview_limit409the … plan allows up to … previews per project (currently …)
preview_name_taken409the address … is already in use
preview_not_deployed409preview … has no deployment to promote yet
profiler_busy409…
project_deleting409the project is tearing down and can't accept new changes
project_disabled409this project is disabled — enable it before deploying
project_limit409the … plan allows up to … projects (currently …)
project_name_taken409This project name is already in use.
queue_limit400the … plan allows up to … queues per org (currently …, this deployment adds …)
rate_limited429You exceeded the request limit. Try again shortly.
relay_disabled503WebSocket connections are not being served from this server right now. Try again shortly.
replacing503the project's process is being replaced — retry shortly
repo_exists409repository … already exists
reserved_name400This name is reserved and cannot be used.
restore_stalled503The database restore operation was interrupted. Contact support.
restoring503The database is being restored. Try again after it finishes.
retire_failed503failed to retire runtime: …
retire_unchecked503runtime retirement was not confirmed
revoked403This project is no longer served from this server. Try again shortly.
self_lockout409you cannot take observability:admin away from yourself; ask another admin
short_body——
sign_in_expired400this sign-in link has expired or was already used — start again from the app
sign_in_required401sign in to this app first
signup_closed403this installation creates accounts by invitation only — ask an administrator
slug_reserved409… is reserved: …
sql_error400The database refused the statement. The message is the database's own, and the response details carry its SQLSTATE.
ssh_key_exists409this public key is already registered
stale_release409the held deployment is no longer the control plane target
storage_not_granted409this project has no file storage — set "storage": true in runlot.json and deploy
stream_too_large——
suspended403 · 409The project is suspended.
tail_consumer_limit400the … plan allows up to … tail consumers per project (this deployment names …)
telemetry_queue_full429the browser telemetry queue is full
too_large—the body is larger than … KiB
too_many_attempts429too many wrong passwords — try again later
too_many_invites409too many pending invites (…) — cancel an old invite and try again
tool_args_too_large——
tool_protocol——
tool_round_limit——
tool_session_gone410that BYOS run is no longer active
totp_disabled409two-factor authentication is not on for this account
totp_enabled409two-factor authentication is already on — turn it off first to enroll another device
totp_required403… requires two-factor authentication — turn it on for your account before making changes
totp_unreadable503this account's authenticator could not be read — use a recovery code
unauthorized401The token is missing or has expired. Run runlot login again.
unknown—The response could not be identified as a runlot API response. It may have come from an intermediary proxy.
unknown_hostname404No project connected to that hostname could be found on this server.
unknown_node503 · 403The server for this project could not be located. Try again shortly.
unknown_state503The deployment is in a state this server does not recognize. Try again shortly.
unsupported—This file storage backend does not support that operation.
unsupported_media_type—send application/json
unsupported_response_type400response_type … is not supported — only code
upload_committing503this upload is still being committed — try again shortly
upload_not_found404the upload session does not exist or has expired — start a new one
upstream_error502the call to … failed
upstream_rate_limited429The provider is rate-limiting requests right now. Try again shortly.
user_not_found404There is no login record for this account. Log in once first.
wake_superseded503…
weak_password400password must be between … and … bytes
websocket_capacity503This server has no WebSocket capacity left right now. Try again shortly.

Errors from runlot's own operations (149)

These codes come back when work runlot runs on your behalf — placing a project on a server, restoring a database, registering a domain — does not finish. Most of them clear if you try again shortly. If the same one keeps coming back, contact support.

CodeHTTP statusDescription
access_mode_app409this deployment admits only people signed in to the app — choose another access mode before turning login off
ai_unavailable409 · 503AI is not available for this project — contact support to have it enabled
alerts_unavailable503External alert secrets cannot be sealed on this installation.
already_done409The requested operation has already finished.
bad_cursor400invalid release issue cursor
bad_effort400… has no reasoning effort control — leave reasoning out
bad_format400responseFormat.type must be "json_schema"
bad_version400version must be a positive deployment version
byos_failed502…
byos_run_exists409that BYOS request is already running
byos_timeout504…
cas_conflict409The resource changed while the request was in flight, so it was not applied. Check the current state and try again.
chain_broken409generation (epoch=…, seq=…) cannot be restored — part of its backup is missing. Choose another restore point
claim_lost409That verification is no longer claimed.
claimed409Another instance is using this database. Try again shortly.
cname_conflict409A CNAME record cannot coexist with a record of another type on the same DNS name.
dashboard_builtin409Built-in dashboards are read-only; export one and create a dashboard from it.
dashboard_key_taken409Another dashboard of this project already has the key ….
dashboard_managed_by_repo409This dashboard comes from .runlot/dashboards/ in the repository; change it there, or the next deploy undoes the edit.
database_required409This project's database was deleted. runlot pg on creates a new one.
db_rewound409Changes to this project's database are on hold while a restore is confirmed. Try again shortly, and contact support if it does not clear.
diagnosis_in_progress409a diagnosis with this idempotencyKey is still running
dns_not_configured503DNS management is not available on this service.
dnssec_off409DNSSEC is disabled for the domain zone. Enable it first.
domain_taken409This domain is already registered.
domain_unavailable409This domain cannot be registered.
downtime_id_taken409That downtime ID belongs to another project.
duplicate_request409idempotency_key … has already been charged on the … lane
email_address_taken409address … is in use by another project
email_domain_provider409the mail provider refused …: …
email_domain_taken409… is already a sending domain of another project
email_domains_unavailable409custom sending domains are not available on this service — mail from the default address still works
email_unavailable409email is not available on this service
erasure_storage_unavailable503Replay storage cannot erase blobs; retry when storage is available.
event_store_unavailable503the event store refused the profile; resend
export_limit409—
filter_limit409a project has at most … trace retention filters
filters_unsupported501this control plane cannot filter the live tail
format_unsupported400… does not support responseFormat — env.ai.models() says which models do
heap_snapshot_not_ready409the heap snapshot is still being taken
heap_snapshot_running409a heap snapshot of this project is already being taken
history_erasure_pending503the events were erased; the history store did not confirm — repeat the erasure
history_unavailable503the error history store did not answer; try again shortly
host_not_attached403… is not an address of project …
hostname_limit409The project has reached its plan's limit on custom domains (1 on Free, 50 on Pro). The response details carry the limit, the current count, and the plan.
hostname_role_conflict409hostname … is already attached to this project as a… domain — detach it first to change that
idempotency_conflict409That key belongs to another or erased approval.
idempotency_key_reused409idempotencyKey … was already used for another issue
invalid_grant400the sign-in code is invalid, expired or already used
invalid_provider400That authentication provider is not supported.
issue_merged409issue … is merged into another issue; act on that one, or unmerge it first
last_method409that would leave no sign-in method — turn login off instead, or turn another method on first
license_node_limit409the licence allows … node(s) and … are registered — mark a node dead or renew with a larger licence
lifecycle_disabled503This operation is temporarily unavailable. Try again shortly.
limit_reached403a project has at most … log metrics
login_domain_exists409this project already has a login domain (…) — detach it first
login_required409mode app admits only people signed in to this app — turn app login on first
managed_rrset409This is a DNS record managed by runlot, so you cannot edit it directly.
master_key_version503This operation is temporarily unavailable. Try again shortly.
model_unavailable503… cannot be called from this control plane
monitor_id_taken409That monitor ID belongs to another project.
monitor_key_taken409Another monitor of this project has the key ….
monitor_limit403This plan allows
monitor_managed_by_repo409This monitor is defined in the repository (.runlot/monitors); change it there and deploy.
no_access_key503Deployment access control is temporarily unavailable. Try again shortly.
no_database409This project has no database connected.
no_deployment404This project has not been deployed yet. Deploy it with runlot deploy first.
no_event_store503this control plane has no event store; observability metrics need one
no_home_node503 · 409This project is not running right now, so the request could not be served. Deploy it, or try again shortly.
no_master_key503This operation is temporarily unavailable. Try again shortly.
no_node503No capacity is available to place the project. Try again shortly.
no_node_admin503This operation is temporarily unavailable. Try again shortly.
no_slot503No capacity is available. Try again shortly.
not_a_preview_of409project … is not a preview of …
not_abortable409The operation has reached an irreversible stage and cannot be aborted.
not_active409This operation cannot be performed in the current state.
not_available501… widgets are not available on this installation yet.
not_brokered409… is not signed in through Runlot — only the runlot provider is
not_deletable409preview … cannot be deleted right now — another operation is in progress; try again shortly
not_merged409… is not merged into another issue
not_shared403Event rows and issues are not shown through a public link; only aggregates are.
not_terminal409The operation is not in a terminal state yet.
object_restore_time_unknown409This project uses Durable Objects, and the chosen restore point does not resolve to an exact time. Restore by time, or pick the end of a generation.
object_restore_uncovered409Some of this project's Durable Objects have no stored copy at the chosen restore point, so the restore was refused rather than leave them holding data from another time. Pick a later restore point.
oidc_discovery_failed400OpenID discovery for … failed: …
op_stalled409The operation has stopped after an error. Resolve the cause, then resume the same operation.
origin_mismatch409… is a … issue and … a … one; issues of different origins are never merged
ownership_pin_conflict409A snapshot pin is immutable and cannot be restored or retargeted. Use a new deployment or an explicit user: rule.
ownership_pin_ineligible409The current member or linked GitHub identity no longer matches.
ownership_pin_limit409The technical limit of 500 snapshot pins per project, including revoked or removed pins, has been reached.
payment_failed402Payment was not authorized. Check your payment method.
pii_required403… needs access to personal data
plan_limit403this plan keeps at most
preview_daily_fuse429The isolated-preview technical limit is 20 approvals per project per UTC day; no extra execution was queued.
preview_not_available409The exact isolated child deployment is not available.
preview_not_empty409The isolated target must be a new database-free preview, not an existing project.
preview_not_ready409The isolated preview is not ready for verification.
preview_target_mismatch409The result is not this job's isolated child deployment.
privacy_erased409The stored error data or this request key was erased; refresh the issue before starting a new diagnosis.
proposal_expired409this proposal is older than 7 days; propose again
proposal_in_progress409a fix proposal with this idempotencyKey is still being generated
proposal_mismatch409proposalSha does not match this proposal
proposal_not_ready409this proposal is … and cannot be applied
provider_not_configured404the runlot provider is not turned on for project …
query_too_large422the query needed too much memory; narrow the timeframe, group by fewer keys or add filters
query_too_slow422the query ran past 10 seconds; narrow the timeframe or add filters
registrar_error502The domain registrar returned an error.
registrar_not_configured503Domain registration is not available on this service.
registrar_rejected422an earlier purchase of this name was declined: …
rehydration_busy409a project runs at most … rehydrations at once
release_batch_changed409a release report cannot change during retry
replay_cap429this project's replays for the month are used up
replay_pending_limit429too many of this project's replays are waiting to be completed
replay_unavailable404replay … cannot be shown
request_death_binding_changed409a registered process binding is immutable
request_death_bindings_full429request-death binding admission is full
request_death_changed409an observation cannot change during retry
request_death_evidence_full429request-death evidence admission is full; retry the complete batch
request_death_exit_changed409a process may have only one immutable exit seal
request_death_fact_changed409a request terminal or native tail is immutable
request_death_not_assigned403an unknown process binding requires current assignment authority
request_death_tail_after_seal409a new native tail cannot follow its process seal
route_limit409this project already has … route templates
runlot_unavailable409Runlot sign-in is not configured on this deployment (no broker)
saga_incomplete502The domain purchase did not finish. Send the same request again to continue it.
secrets_unavailable503The check's stored secrets cannot be opened; enter them again.
slo_id_taken409That SLO ID belongs to another project.
slo_in_use409… burn-rate monitors read this SLO; delete them first.
slo_limit403This plan allows
snapshot_storage_unavailable503this control plane has no blob store
source_not_placed409project … has not been deployed, so there is no database to branch from — deploy it first
stale_backup_audit409project …'s audit attempt was superseded
stale_backup_delete_claim409the backup delete claim is no longer current
stale_backup_head409project …'s audit target identity changed
still_stored409the whole range is inside the …-day retention and is still in the store
storage_unavailable409this CP has no env.storage backend to write the archive into
store_unavailable503The observability store is not configured on this installation.
time_history_unavailable409this chain starts at a backup without a known snapshot time; restore by transaction instead
too_many_public_prefixes409a project may publish at most … prefixes (this one has …)
unmerge_required409Unmerge this issue and its merged sources before deleting it; no merged issue was deleted.
upstream_timeout504… did not answer within …
uptime_check_id_taken409That check ID belongs to another project.
uptime_check_limit402This plan allows … uptime checks per project.
user_rrset409This is a user-created DNS record, so it cannot be overwritten by a managed record.
verification_fuse429This isolated preview reached its 20-request technical limit.
verification_not_available409The request was submitted already, or the isolated preview/approval is unavailable; it was not replayed.
verification_running409A verification is already pending; a retry cannot authorize another request.
witness_unavailable503The state of this project's database could not be confirmed, so the operation was held. Try again shortly.
zone_taken409This DNS zone already exists.

このページの目次