---
type: reference
title: 공개 오류 레퍼런스
summary: 마켓플레이스 공개 경로가 낼 수 있는 모든 오류 코드, 그 트리거와 고침을 찾을 곳과 함께.
---

마켓플레이스 공개 경로가 반환할 수 있는 모든 오류 코드, 그 트리거와 고침으로의 링크와 함께. 단계별 고침은 [공개 실패 고치기](/docs/marketplace-game-development/publish-failed-fixes)를 보세요.

## 오류 코드

| 코드 | 트리거 | 고침 |
|---|---|---|
| `invalid-repo` | 공개 모달에 입력한 저장소 필드가 `owner/name`으로 파싱되지 않음. 수동 공개만 | `owner/name`이나 전체 `https://github.com/owner/name` URL을 쓰세요 |
| `repo-not-found` | 우리 매니페스트 가져오기가 404를 반환함. 당신의 저장소가 비공개거나, 없거나, `caputchin-game` 토픽이 없거나, 기대된 경로에 `caputchin.json`이 없음 | [저장소를 공개로 만들기 + 토픽 더하기 + 매니페스트 푸시하기](/docs/marketplace-game-development/publish-failed-fixes#repo-not-found) |
| `manifest-error` | 당신의 `caputchin.json`이 검증에 실패함. detail 문자열이 특정 필드를 댐. [manifest-error 하위 코드](#manifest-error-sub-codes)를 보세요 | detail이 대는 필드를 고치세요 |
| `bundle-fetch-failed` | `entry` 및/또는 `npm`이 고정한 번들 URL을 가져올 수 없거나, 비2xx를 반환하거나, 12MB를 넘음 | [번들 URL과 크기 확인하기](/docs/marketplace-game-development/publish-failed-fixes#bundle-fetch-failed) |
| `run-not-conforming` | 선택적 `run` 산출물의 스모크 확인(결정론적 시드로 한 번 돌림)이 적합한 판정을 반환하지 않음. 당신의 게임은 여전히 나열되며, 그저 재생 불가로 보이고 게이트할 수 없음 | [당신의 시뮬레이션을 결정론적으로 만들기](/docs/marketplace-game-development/publish-failed-fixes#run-not-conforming) |
| `rate-limited` | 지난 60초 안에 당신의 IP에서 공개 요청이 너무 많음 | 60초 기다리고 재시도하세요 |

## manifest-error 하위 코드 [#manifest-error-sub-codes]

`manifest-error`를 받으면, detail 문자열이 실패한 필드로 시작합니다. 맞는 고침을 찾으려면 이 표를 쓰세요.

| detail의 필드 | 의미 | 고침 |
|---|---|---|
| `terms_accepted` | 필드가 없거나 리터럴 JSON 불리언 `true`가 아님 | [제출 약관을 읽은 뒤 `true`로 설정하기](/docs/marketplace-game-development/publish-failed-fixes#manifest-error-terms-accepted) |
| `license` | 없거나, 잘못됐거나, 승인된 목록 밖의 SPDX 식별자를 댐 | [승인된 목록에서 식별자 고르기](/docs/marketplace-game-development/publish-failed-fixes#manifest-error-license) |
| `(root)` | JSON 파일이 객체로 파싱되지 않음(최상위 배열, 문자열, 또는 null을 가짐) | `{ ... }`로 감싸세요 |
| `marketplace` | `marketplace` 블록이 있지만 객체가 아님 | 객체로 만들거나 제거하세요(자체 호스팅 전용 게임은 블록을 생략함) |
| `marketplace.name` / `description` / `preview` | 필드가 문자열이 아님 | 문자열화하거나 제거하세요 |
| `marketplace.author` | 블록이 있지만 객체가 아님 | `{ name?, url?, email? }` 모양을 쓰세요 |
| `marketplace.author.name` / `url` | 하위 필드가 문자열이 아님 | 문자열화하거나 제거하세요 |
| `marketplace.author.email` | 문자열이 아니거나 이메일 모양 확인에 실패 | [주소를 고치거나 필드를 제거하기](/docs/marketplace-game-development/publish-failed-fixes#manifest-error-author-email) |
| `entry` | 단일 게임에 `entry`도 `npm`도 없거나, 값이 순회(`../`), 절대 슬래시, Windows 구분자, 쿼리 문자열, 또는 공백을 담음 | 깨끗한 상대 경로를 제공하세요 |
| `npm` | 문자열이 아니거나, npm 이름 정규식에 실패 | 유효한 npm 패키지 이름을 쓰세요 |
| `entry/npm+games` | `entry`/`npm`과 `games`가 같은 수준에 둘 다 선언됨 | 하나를 고르세요: 단일 게임은 `entry`/`npm`을 쓰고; 컬렉션 래퍼는 `games`를 씁니다 |
| `entry/npm` | 단일 게임에 둘 다 없음 | 하나를 더하세요 |
| `games` | 배열이 아니거나, 비문자열 엔트리를 담거나, 순회/절대 경로를 담거나, `.` / `./`(저장소 루트를 자기 참조할)을 담음 | 배열을 고치세요 |
| `games[i]` | 특정 자식 경로가 유효하지 않음 | 그 엔트리를 고치세요 |
| `run` / `run.entry` / `run.modules[i].*` | 선택적 분할 run 선언이 잘못됨 | [스키마대로 고치기](/docs/marketplace-game-development/publish-failed-fixes#manifest-error-structure) |

## 승인된 라이선스 [#approved-licenses]

`license` 필드가 이 목록의 SPDX 식별자로 평가되는 `caputchin.json` 매니페스트만 라이선스 게이트를 통과합니다. 구속력 있는 버전은 [마켓플레이스 제출 약관 4절](/legal/submission-terms)을 보세요.

### 관대한 코드 라이선스

| SPDX ID | 이름 |
|---|---|
| `MIT` | MIT License |
| `MIT-0` | MIT No Attribution |
| `Apache-2.0` | Apache License 2.0 |
| `BSD-2-Clause` | BSD 2-Clause "Simplified" |
| `BSD-3-Clause` | BSD 3-Clause "New" / "Revised" |
| `0BSD` | BSD Zero Clause |
| `ISC` | ISC License |
| `Zlib` | zlib License |
| `Unlicense` | The Unlicense (public-domain dedication) |
| `BSL-1.0` | Boost Software License 1.0 |
| `NCSA` | University of Illinois / NCSA Open Source License |
| `PostgreSQL` | PostgreSQL License |
| `Python-2.0` | Python License 2.0 |
| `PHP-3.01` | PHP License 3.01 |
| `Ruby` | Ruby License |
| `TCL` | Tcl/Tk License |
| `MS-PL` | Microsoft Public License |
| `AFL-3.0` | Academic Free License 3.0 |
| `MulanPSL-2.0` | Mulan Permissive Software License v2 |
| `WTFPL` | Do What The Fuck You Want To Public License |

### 파일 범위 약한 카피레프트

| SPDX ID | 이름 |
|---|---|
| `MPL-2.0` | Mozilla Public License 2.0 |
| `MS-RL` | Microsoft Reciprocal License |

### 자산 라이선스 (게임에 번들된 아트, 오디오, 폰트)

| SPDX ID | 이름 |
|---|---|
| `CC0-1.0` | Creative Commons Zero v1.0 |
| `CC-BY-3.0` | Creative Commons Attribution 3.0 |
| `CC-BY-4.0` | Creative Commons Attribution 4.0 |
| `OFL-1.1` | SIL Open Font License 1.1 |

### SPDX 표현식 규칙

- `MIT`: 맨 식별자; 위에 나타나야 함.
- `MIT OR Apache-2.0`: `OR`의 어느 분기든 위에 나타나야 함.
- `MIT AND CC-BY-4.0`: `AND`의 모든 분기가 위에 나타나야 함.
- `Apache-2.0 WITH LLVM-exception`: `WITH` 절은 받아들여지지 않음.
- `LGPL-2.1+`: `+`(또는 이후) 접미사는 받아들여지지 않음.

### 왜 일부 라이선스가 제외되는가

| 분류 | 예시 | 왜 |
|---|---|---|
| 강한 카피레프트 | `GPL-*`, `AGPL-*` | 전염성; `AGPL` §13 네트워크 트리거는 우리가 네트워크 호스트라 첨예함. (`GPL-2.0-only`는 Caputchin이 공개하는 자사 게임에만 받아들여지지, 제3자 제출에는 아님.) |
| 번들 모호성을 둔 라이브러리 카피레프트 | `LGPL-*` | "라이브러리를 전달하라"가 JavaScript와 WebAssembly 번들에 모호하게 읽힘 |
| 자산의 동일 조건 공유 | `CC-BY-SA-*`, `CC-BY-NC-*`, `CC-BY-ND-*` | 동일 조건 공유가 임베드하는 사이트의 연동을 오염시킴; `NC`는 상업적 배포를 배제함 |
| 소스 이용 가능(OSI 아님) | `BUSL-1.1`, `SSPL-1.0`, `Elastic-2.0` | 이용 분야 제한, 재배포 제한, 또는 둘 다 |

`BSL-1.0`(Boost Software License)은 관대하고 받아들여짐에 유의하세요; `BUSL-1.1`(Business Source License)은 아닙니다. 파서는 SPDX 정규 문자열을 상대로 그대로 비교하니, 둘은 결코 충돌하지 않습니다.

## 함께 보기

- [공개 실패 고치기](/docs/marketplace-game-development/publish-failed-fixes)
- [caputchin.json 매니페스트](/docs/marketplace-game-development/the-caputchin-json-manifest): 이 오류들이 검증하는 필드.
- [마켓플레이스 제출 약관](/legal/submission-terms) (10절이 알림 옵트아웃을 다룸)
