runlot
참조

오류 코드

CLI 가 오류 [code] … 로 찍는 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 가 상황에 따라 다른 상태 코드로 올 수 있습니다. 그런 행은 상태 칸에 둘을 적었습니다.

code 목록 (57)

code상태
access_denied401우회 시크릿이 맞지 않습니다
access_exchange_failed502로그인 확인에 실패했다 — 잠시 뒤 다시 시도한다
access_required401이 배포는 접근 제어가 켜져 있어 로그인이 필요합니다
access_unavailable503접근 제어를 판정할 수 없어 요청을 닫았습니다
already_member409이미 그 조직의 멤버입니다. 역할 변경은 다른 명령입니다
backend
backup_failed503세대를 뜨지 못했다: …
bad_request400요청이 형식에 맞지 않습니다
bundle_too_large번들이 업로드 상한을 넘었습니다
cold503프로젝트가 잠들어 있어 깨우는 중입니다. 몇 초 뒤 다시 시도하세요
confirm_mismatch400확인 문자열이 이름과 다릅니다
drain_incomplete503front …/…가 강제 종료 뒤에도 in-flight를 남겼다 (grant 철회는 완료: …)
export_failed502 · 503키 없이 성공이 왔다
forbidden403신원은 맞지만 권한이 없습니다
front_not_ready503최초 맵 동기화가 아직 끝나지 않았다
front_unacked503front …/…가 ACK하지 않았다 (소켓 범위 — grant는 홈 노드가 든다)
github_token502GitHub 토큰 교환 실패: …
github_user502GitHub 사용자 조회 실패: …
grant_failed500grant 철회에 실패했다: …
hostname_taken409그 호스트네임은 이미 다른 프로젝트가 쓰고 있습니다
internal500internal error
last_admin409조직의 마지막 admin 입니다. 내리면 아무도 관리할 수 없습니다
no_core503cp-core 주소 없이 뜬 cp-public 이다 — DNS 존은 cp-core 가 든다
no_host400Host 헤더가 없다
no_log_buffer503이 admin 표면에 로그 링이 꽂혀 있지 않다 (Admin.SetLogSource)
no_placement503프로젝트가 아직 어느 노드에도 놓이지 않았습니다
no_wake501이 노드는 주차된 프로젝트를 깨우지 못한다
no_writable_state501이 노드에는 내보낼 데이터베이스가 없다
node_unreachable502노드에 닿지 못했습니다. 잠시 뒤 다시 시도하세요
not_a_member403그 조직의 멤버가 아닙니다
not_found404그런 조직·프로젝트·배포가 없습니다
not_here404
not_ready503최초 맵 poll 또는 노드 주소록 로드가 아직 끝나지 않았다
op_conflict409op_id …는 이미 …(…, epoch …)다 — …(…, epoch …)로 재사용할 수 없다
op_in_flight503 · 409같은 작업이 이미 진행 중입니다
org_slug_taken409그 조직 slug 는 이미 있습니다
project_name_taken409그 프로젝트 이름은 이미 있습니다
rate_limited
reserved_name400예약된 이름이라 쓸 수 없습니다
restore_busy429복원 슬롯이 모두 찼다 (…/…)
restore_failed500최종 세대 복원에 실패했다: …
restore_stalled503복원이 멈춰 있습니다. 지원에 문의하세요
restore_too_large429복원 예약 …가 이 노드의 복원 예산 …를 넘는다 (객체 …)
restoring503복원 중입니다. 끝나면 다시 응답합니다
revoked403이 배치의 권한이 회수됐습니다
seal_failed503최종 세대 봉인에 실패했다: …
suspended403 · 409프로젝트가 정지되어 있습니다
unauthorized401토큰이 없거나 만료됐습니다. runlot login 을 다시 하세요
unknown서버가 아닌 것이 답했습니다 (프록시의 HTML 502 처럼). CLI 가 붙이는 값입니다
unknown_hostname404이 노드가 아는 프로젝트 중 …를 쓰는 것이 없다
unknown_node503홈 노드 주소를 모른다
unknown_state503모르는 배치 상태 …다
unsupported이 저장소 백엔드가 지원하지 않는 기능입니다
upstream_unreachable워커에 닿지 못했습니다. 배포가 살아 있는지 확인하세요
user_not_found404그 계정으로 로그인한 적이 없습니다. 초대는 없으므로 먼저 한 번 로그인해야 합니다
wake_failed503
workerd_unchecked503 · 500커밋 경로가 멎었는지 확인하지 못했다: …

운영 평면에서 올라오는 것 (50)

배치·복원·lease 처럼 runlot 이 안에서 하는 일이 실패하면 그 code 가 그대로 올라옵니다. 대부분은 잠시 뒤 다시 시도하면 됩니다 — 계속 같은 code 가 나오면 알려 주세요.

code상태
already_done409연산 … 는 이미 끝났다
cas_conflict409
cert_generation403인증서 세대 …는 폐기됐다 (현재 …)
claimed409다른 곳이 이 데이터베이스를 쥐고 있습니다. 잠시 뒤 다시 시도하세요
cname_conflict409… 에는 CNAME 과 다른 타입이 함께 있을 수 없다
database_required409먼저 데이터베이스가 있어야 합니다. runlot pg create 를 실행하세요
db_rewound409
dek_unwrap_failed500프로젝트 … 의 DEK 봉인을 풀지 못했다: …
dns_not_configured503네임서버가 아직 준비되지 않아 도메인을 살 수 없습니다
dnssec_off409존 … 의 DNSSEC 이 꺼져 있다 — 먼저 켠다
domain_taken409이미 등록된 도메인입니다
domain_unavailable409살 수 없는 도메인입니다
era_ahead409요청의 era …가 CP의 …보다 앞선다 — CP의 era 상태가 유실됐다
era_write_failed500
identity_mismatch403인증서는 … 인데 본문은 … 다
invalid_provider400프로바이더 … 를 모른다 — … 중 하나여야 한다
last_node_unavailable503최종 세대를 들고 있는 노드 … 가 배치 가능한 상태가 아니다
lease_alive409
lease_drain_pending409기존 lease가 아직 소멸하지 않았다 — … 뒤에 다시 시도하라 (격리 진입 + TTL … + 마진 …)
lease_quarantine409
lease_seq_ahead409요청의 lease_seq …가 CP의 …보다 앞선다 (era …)
lifecycle_disabled503수명주기 연산이 꺼져 있다 — 퇴거를 시작하지 않는다 (cp-core --enable-lifecycle)
managed_rrset409runlot 이 관리하는 레코드라 직접 고칠 수 없습니다
master_key_version503마스터 키 버전 … 를 이 cp-core 가 들고 있지 않다 —
no_access_key503cp-core 에 RUNLOT_ACCESS_KEY 가 없다 — 접근 쿠키를 만들 수 없다
no_database409이 프로젝트에는 데이터베이스가 없습니다
no_home_node503 · 409프로젝트 …의 홈 노드 주소를 읽지 못했다
no_last_node503최종 세대를 들고 있던 노드를 모른다 — 로컬 오프사이트는 그 노드에서만 읽을 수 있다
no_master_key503cp-core 에 마스터 키가 없다 — RUNLOT_MASTER_KEY 없이 떴다
no_node503배치 가능한 노드가 없다
no_node_admin503노드 admin 경로가 설정되지 않았다 — 진단 export를 보낼 길이 없다
no_session_key503cp-core 에 RUNLOT_SESSION_KEY 가 없다 — 로그인 세션으로 wire 에 붙을 수 없다
no_slot503빈 자리가 없습니다. 잠시 뒤 다시 시도하세요
node_not_active409노드 …는 … 상태다
not_abortable409… 연산은 중단할 수 없다 — 되돌릴 수 없는 단계 앞이 없다
not_active409지금 상태에서는 할 수 없는 일입니다
not_cold409프로젝트 … 의 배치가 … 다 — 재활성은 cold 에서만 시작한다
not_granted404프로젝트 … 에 auth 부여가 없다 — 먼저 켠다
not_home403 · 409노드 … 는 프로젝트 … 의 epoch … 를 들고 있지 않다
not_quarantined409lease 격리 상태가 아니다 — 활성화할 것이 없다
not_terminal409
op_stalled409프로젝트 … 의 연산 … 가 … 로 멈춰 있다 — 원인을 고치고 resume 해야 한다
payment_failed402결제가 거절됐습니다. 카드를 확인하세요
registrar_error502등록기관이 오류를 냈습니다
registrar_not_configured503도메인 등록기관이 아직 연결되지 않았습니다
saga_incomplete502구매가 끝나지 않았다 (다시 보내면 그 자리에서 이어 간다): …
stale_epoch409낡은 세대의 요청입니다. 다시 시도하세요
user_rrset409… … 는 사용자가 만든 레코드다 — 관리 레코드로 덮어쓰지 않는다
witness_unavailable503
zone_taken409그 존은 이미 있습니다

이 페이지에서