runlot
참조

오류 코드

CLI가 오류 [code] … 형식으로 출력하는 오류 코드 목록입니다. 프로그램에서는 code로 처리하고 message는 표시용으로만 사용하세요.

이 페이지의 기준 소스는 cp/internal/public, cp/internal/core, node/internal/front, node/internal/agent의 Go 소스입니다. 문서를 빌드할 때 해당 소스에서 내용을 생성합니다.

오류 응답 읽기

실패한 API 응답은 모두 동일한 구조를 사용합니다.

{ "error": { "code": "database_required", "message": "먼저 데이터베이스를 생성하세요" } }

CLI는 이 응답을 오류 [database_required] … 형식으로 출력하고 종료 코드 1로 끝냅니다. 자동화 스크립트에서는 code로 분기하세요. message는 사용자를 위한 설명이므로 언제든 변경될 수 있습니다.

같은 code가 상황에 따라 여러 HTTP 상태 코드로 반환될 수 있습니다. 해당하는 경우 상태 코드 열에 모두 표시합니다.

오류 코드 목록 (76)

코드HTTP 상태설명
access_denied401접근 제어 우회 시크릿이 올바르지 않습니다.
access_exchange_failed502접근 권한 확인을 완료하지 못했습니다. 잠시 후 다시 시도하세요.
access_required401이 배포에는 접근 제어가 설정되어 있어 로그인이 필요합니다.
access_unavailable503접근 권한을 확인할 수 없어 요청을 처리하지 않았습니다.
already_member409사용자가 이미 조직의 구성원입니다. 역할은 별도의 명령으로 변경하세요.
already_pro409이미 프로 요금제다
backend백엔드 서비스가 요청을 처리하지 못했습니다.
backup_failed503데이터베이스 백업 생성에 실패했습니다.
bad_request400요청 형식이 올바르지 않습니다.
bad_signature403웹훅 서명이 맞지 않는다
billing_off501결제가 설정되지 않았다
billing_unavailable502결제 서비스가 응답하지 않는다
bundle_too_large번들 크기가 업로드 제한을 초과했습니다.
cold503콜드 상태의 프로젝트를 백업에서 복원하는 중입니다. 잠시 후 다시 시도하세요.
compatibility_date_unsupported400compatibilityDate … 은 이 런타임의 최대 … 을 넘습니다 — runlot.json 의 값을 … 이하로 낮추세요
confirm_mismatch400확인 문자열이 프로젝트 이름과 일치하지 않습니다.
cron_limit400… 요금제는 조직당 예약 실행 … 개까지입니다 (지금 … 개, 이 배포가 … 개를 더합니다)
drain_incomplete503기존 요청 처리가 끝나지 않아 안전하게 전환할 수 없습니다.
email_failed503
email_not_declared409
email_rate_limited429
export_failed502 · 503데이터베이스 진단 내보내기에 실패했습니다.
forbidden403인증된 사용자이지만 이 작업을 수행할 권한이 없습니다.
front_not_ready503트래픽 프런트엔드의 초기 동기화가 아직 완료되지 않았습니다.
front_unacked503트래픽 프런트엔드가 구성 변경을 확인하지 않았습니다.
git_unavailable503저장소 브라우즈가 켜져 있지 않습니다
git_unreachable503저장소를 읽지 못했습니다
github_token502GitHub 토큰을 교환하지 못했습니다.
github_user502GitHub 사용자 정보를 조회하지 못했습니다.
grant_failed500배포 권한을 갱신하지 못했습니다.
hostname_taken409이 호스트 이름은 이미 다른 프로젝트에서 사용 중입니다.
internal500서버 내부 오류가 발생했습니다. 잠시 후 다시 시도하세요.
invite_expired409만료된 초대입니다 — 관리자에게 다시 보내 달라고 요청해 주세요
invite_revoked409취소된 초대입니다 — 관리자에게 다시 요청해 주세요
invite_used409이미 수락된 초대입니다
last_admin409조직의 마지막 관리자입니다. 역할을 변경하면 조직을 관리할 수 있는 사용자가 없어집니다.
no_core503컨트롤 플레인 핵심 서비스 주소가 설정되지 않았습니다.
no_email501이 노드는 메일을 받지 못한다
no_host400요청에 Host 헤더가 없습니다.
no_log_buffer503관리자 API에 로그 소스가 설정되지 않았습니다.
no_placement503프로젝트가 아직 노드에 배치되지 않았습니다.
no_ses_hook501SES 웹훅이 꺼져 있다
no_wake501이 노드는 유휴 상태의 프로젝트를 시작할 수 없습니다.
no_writable_state501이 노드에는 해당 데이터베이스 작업을 수행할 수 있는 저장소가 없습니다.
node_unreachable502노드에 연결할 수 없습니다. 잠시 후 다시 시도하세요.
not_a_member403사용자가 이 조직의 구성원이 아닙니다.
not_found404요청한 조직, 프로젝트 또는 배포를 찾을 수 없습니다.
not_here404요청한 프로젝트는 이 노드에서 처리할 수 없습니다.
not_pro409프로 요금제가 아니다
not_ready503초기 구성 동기화가 아직 완료되지 않았습니다.
op_conflict409같은 작업 ID가 다른 작업에 이미 사용되고 있습니다.
op_in_flight503 · 409같은 작업이 이미 진행 중입니다.
org_slug_taken409이 조직 slug는 이미 사용 중입니다.
project_name_taken409이 프로젝트 이름은 이미 사용 중입니다.
rate_limited요청 한도를 초과했습니다. 잠시 후 다시 시도하세요.
repo_exists409저장소 … 가 이미 있습니다
reserved_name400예약된 이름이므로 사용할 수 없습니다.
restore_busy429동시에 처리할 수 있는 복원 작업 수를 초과했습니다.
restore_failed500데이터베이스 복원에 실패했습니다.
restore_stalled503데이터베이스 복원 작업이 중단되었습니다. 지원팀에 문의하세요.
restore_too_large429복원 작업이 노드의 복원 용량 제한을 초과했습니다.
restoring503데이터베이스를 복원하고 있습니다. 완료된 후 다시 시도하세요.
revoked403이 배치에 대한 권한이 취소되었습니다.
seal_failed503데이터베이스 최종 세대 저장에 실패했습니다.
ssh_key_exists409이미 등록된 공개키입니다
suspended403 · 409프로젝트가 일시 중지되어 있습니다.
unauthorized401토큰이 없거나 만료되었습니다. runlot login을 다시 실행하세요.
unknownRunlot 서버가 아닌 중간 프록시 등이 응답했습니다.
unknown_hostname404이 노드에서 해당 호스트 이름에 연결된 프로젝트를 찾을 수 없습니다.
unknown_node503프로젝트의 홈 노드 주소를 확인하지 못했습니다.
unknown_state503인식할 수 없는 배치 상태입니다.
unsupported현재 저장소 백엔드에서는 이 기능을 지원하지 않습니다.
upstream_unreachable배포된 워커에 연결할 수 없습니다. 배포 상태를 확인하세요.
user_not_found404이 계정으로 로그인한 기록이 없습니다. 먼저 한 번 로그인하세요.
wake_failed503유휴 상태의 프로젝트를 시작하지 못했습니다.
workerd_unchecked503 · 500워커의 커밋 경로 상태를 확인하지 못했습니다.

운영 서비스에서 반환하는 오류 (55)

배치, 복원, 리스 관리처럼 Runlot 내부 작업이 실패하면 해당 오류 코드가 반환됩니다. 대부분은 잠시 후 다시 시도하면 해결됩니다. 같은 오류가 계속되면 지원팀에 문의하세요.

코드HTTP 상태설명
already_done409요청한 작업은 이미 완료되었습니다.
cas_conflict409리소스 상태가 변경되어 요청을 적용할 수 없습니다. 최신 상태를 확인한 후 다시 시도하세요.
cert_generation403요청에 사용한 인증서 세대가 폐기되었습니다.
claimed409다른 인스턴스가 이 데이터베이스를 사용 중입니다. 잠시 후 다시 시도하세요.
cname_conflict409같은 DNS 이름에는 CNAME 레코드와 다른 유형의 레코드를 함께 둘 수 없습니다.
database_required409먼저 데이터베이스가 필요합니다. runlot.json"database": true를 적고 배포하세요.
db_rewound409메타데이터 DB가 이전 상태로 복원되어 리스 발급을 중단했습니다. 운영자의 복구 조치가 필요합니다.
dek_unwrap_failed500프로젝트 데이터 암호화 키를 복호화하지 못했습니다.
dns_not_configured503네임서버 설정이 완료되지 않아 도메인을 구매할 수 없습니다.
dnssec_off409도메인 영역의 DNSSEC가 비활성화되어 있습니다. 먼저 활성화하세요.
domain_taken409이미 등록된 도메인입니다.
domain_unavailable409등록할 수 없는 도메인입니다.
email_address_taken409주소 … 는 다른 프로젝트가 쓰고 있다
email_unavailable409이 배치에는 메일 도메인이 없다 (RUNLOT_MAIL_DOMAIN) — 이메일을 켤 수 없다
era_ahead409요청의 상태 버전(era)이 컨트롤 플레인에 저장된 버전보다 높습니다.
era_write_failed500상태 버전(era)을 저장하지 못했습니다.
identity_mismatch403인증서의 호스트 이름과 요청 본문의 호스트 이름이 일치하지 않습니다.
invalid_provider400지원하지 않는 인증 공급자입니다.
last_node_unavailable503최종 데이터베이스 세대를 보유한 노드를 사용할 수 없습니다.
lease_alive409기존 리스가 아직 유효하여 요청을 처리할 수 없습니다.
lease_drain_pending409기존 리스가 종료되는 중입니다. 잠시 후 다시 시도하세요.
lease_quarantine409리스가 격리 상태여서 요청을 처리할 수 없습니다.
lease_seq_ahead409요청의 리스 순번이 컨트롤 플레인이 인식하는 상태보다 앞섭니다.
lifecycle_disabled503수명 주기 작업이 비활성화되어 있습니다.
managed_rrset409Runlot이 관리하는 DNS 레코드이므로 직접 수정할 수 없습니다.
master_key_version503현재 컨트롤 플레인은 요청에 필요한 마스터 키 버전을 보유하지 않습니다.
no_access_key503접근 제어 쿠키를 만들기 위한 키가 설정되지 않았습니다.
no_database409이 프로젝트에는 데이터베이스가 연결되어 있지 않습니다.
no_home_node503 · 409프로젝트의 홈 노드 주소를 확인하지 못했습니다.
no_last_node503최종 데이터베이스 세대를 보유했던 노드를 확인하지 못했습니다.
no_master_key503컨트롤 플레인의 마스터 키가 설정되지 않았습니다.
no_node503배치할 수 있는 노드가 없습니다.
no_node_admin503노드 관리자 API 주소가 설정되지 않았습니다.
no_session_key503로그인 세션 연결에 필요한 키가 설정되지 않았습니다.
no_slot503사용 가능한 용량이 없습니다. 잠시 후 다시 시도하세요.
node_not_active409이 노드는 현재 배치 작업을 수행할 수 있는 상태가 아닙니다.
not_abortable409작업이 되돌릴 수 없는 단계에 도달해 중단할 수 없습니다.
not_active409현재 상태에서는 이 작업을 수행할 수 없습니다.
not_cold409프로젝트가 콜드 상태가 아니므로 재활성화 작업을 시작할 수 없습니다.
not_granted404이 프로젝트에는 인증 서비스가 연결되어 있지 않습니다.
not_home403 · 409이 노드는 요청한 프로젝트 세대의 홈 노드가 아닙니다.
not_quarantined409리스가 격리 상태가 아니므로 활성화할 수 없습니다.
not_terminal409작업이 아직 종료 상태가 아닙니다.
op_stalled409작업이 중단된 상태입니다. 원인을 해결한 후 다시 시작하세요.
payment_failed402결제가 승인되지 않았습니다. 결제 수단을 확인하세요.
registrar_error502도메인 등록기관에서 오류를 반환했습니다.
registrar_not_configured503도메인 등록기관이 아직 연결되지 않았습니다.
registrar_rejected422이 이름의 앞선 구매가 거절됐다: …
saga_incomplete502도메인 구매 작업이 완료되지 않았습니다. 같은 요청을 다시 보내면 이어서 처리합니다.
stale_epoch409이전 프로젝트 세대의 요청입니다. 최신 상태에서 다시 시도하세요.
storage_unavailable409이 프로젝트가 배치된 노드에 파일 저장소 백엔드가 없다 — 운영자가 노드에 백엔드를 붙여야 한다
too_large원문이 … 바이트를 넘는다
user_rrset409사용자가 만든 DNS 레코드이므로 관리 레코드로 덮어쓸 수 없습니다.
witness_unavailable503메타데이터 DB 상태를 검증하는 witness 정보를 읽을 수 없어 리스 발급이나 활성화를 보류했습니다.
zone_taken409이 DNS 존은 이미 존재합니다.

이 페이지의 목차