---
type: reference
title: Referensi galat terbit
summary: Setiap kode galat yang bisa dipancarkan jalur terbit marketplace, dengan pemicu dan di mana menemukan perbaikannya.
---

Setiap kode galat yang bisa dikembalikan jalur terbit marketplace, dengan pemicu dan tautan ke perbaikan. Untuk perbaikan langkah-demi-langkah, lihat [Perbaiki kegagalan terbit](/docs/marketplace-game-development/publish-failed-fixes).

## Kode galat

| Kode | Pemicu | Perbaikan |
|---|---|---|
| `invalid-repo` | Bidang repositori yang kamu masukkan di modal terbit tak terurai sebagai `owner/name`. Hanya terbit-manual | Pakai `owner/name` atau URL penuh `https://github.com/owner/name` |
| `repo-not-found` | Pengambilan manifest kami mengembalikan 404. Repositori-mu privat, hilang, tak punya topik `caputchin-game`, atau tak ada `caputchin.json` di path yang diharapkan | [Buat repositori publik + tambahkan topik + dorong manifest](/docs/marketplace-game-development/publish-failed-fixes#repo-not-found) |
| `manifest-error` | `caputchin.json`-mu gagal validasi. String detail menyebut bidang spesifik. Lihat [sub-kode manifest-error](#manifest-error-sub-codes) | Perbaiki bidang yang disebut detail |
| `bundle-fetch-failed` | URL bundel yang dipin oleh `entry` dan/atau `npm` tak bisa diambil, mengembalikan non-2xx, atau melebihi 12MB | [Pastikan URL dan ukuran bundel](/docs/marketplace-game-development/publish-failed-fixes#bundle-fetch-failed) |
| `run-not-conforming` | Pemeriksaan smoke artefak `run` opsional (dijalankan sekali dengan seed deterministik) tak mengembalikan vonis yang sesuai. Game-mu tetap terdaftar, sekadar menunjukkan Tidak bisa diputar ulang dan tak bisa menggerbang | [Buat simulasimu deterministik](/docs/marketplace-game-development/publish-failed-fixes#run-not-conforming) |
| `rate-limited` | Terlalu banyak permintaan terbit dari IP-mu dalam 60 detik terakhir | Tunggu 60 detik dan coba-ulang |

## Sub-kode manifest-error [#manifest-error-sub-codes]

Saat kamu menerima `manifest-error`, string detail dimulai dengan bidang yang gagal. Pakai tabel ini untuk menemukan perbaikan yang tepat.

| Bidang di detail | Makna | Perbaikan |
|---|---|---|
| `terms_accepted` | Bidang hilang atau bukan boolean JSON literal `true` | [Setel ke `true` setelah membaca Ketentuan Pengajuan](/docs/marketplace-game-development/publish-failed-fixes#manifest-error-terms-accepted) |
| `license` | Hilang, cacat, atau menyebut pengenal SPDX di luar daftar yang disetujui | [Pilih pengenal dari daftar yang disetujui](/docs/marketplace-game-development/publish-failed-fixes#manifest-error-license) |
| `(root)` | Berkas JSON tak terurai sebagai objek (kamu punya array, string, atau null tingkat-atas) | Bungkus ia di `{ ... }` |
| `marketplace` | Blok `marketplace` hadir tapi bukan objek | Entah buat ia objek atau singkirkan (game khusus-swahosting menghilangkan blok) |
| `marketplace.name` / `description` / `preview` | Bidang bukan string | Jadikan string atau singkirkan |
| `marketplace.author` | Blok hadir tapi bukan objek | Pakai bentuk `{ name?, url?, email? }` |
| `marketplace.author.name` / `url` | Subbidang bukan string | Jadikan string atau singkirkan |
| `marketplace.author.email` | Bukan string ATAU gagal pemeriksaan bentuk-email | [Perbaiki alamat atau singkirkan bidang](/docs/marketplace-game-development/publish-failed-fixes#manifest-error-author-email) |
| `entry` | Game tunggal tak punya `entry` dan tak punya `npm`, atau nilainya berisi traversal (`../`), slash absolut, pemisah Windows, query string, atau spasi | Sediakan path relatif bersih |
| `npm` | Bukan string, atau gagal regex npm-name | Pakai nama paket npm yang sah |
| `entry/npm+games` | Baik `entry`/`npm` maupun `games` dideklarasikan di tingkat yang sama | Pilih satu: game tunggal pakai `entry`/`npm`; pembungkus koleksi pakai `games` |
| `entry/npm` | Game tunggal tak punya satu pun | Tambahkan satu |
| `games` | Bukan array, berisi entri non-string, berisi traversal/path absolut, atau berisi `.` / `./` (yang akan merujuk-sendiri akar repo) | Perbaiki array |
| `games[i]` | Sebuah path anak spesifik tak sah | Perbaiki entri itu |
| `run` / `run.entry` / `run.modules[i].*` | Deklarasi split-run opsional cacat | [Perbaiki per skema](/docs/marketplace-game-development/publish-failed-fixes#manifest-error-structure) |

## Lisensi yang disetujui [#approved-licenses]

Hanya manifest `caputchin.json` yang bidang `license`-nya mengevaluasi ke pengenal SPDX di daftar ini yang lolos gerbang lisensi. Lihat [Ketentuan Pengajuan Marketplace bagian 4](/legal/submission-terms) untuk versi yang mengikat.

### Lisensi kode permisif

| SPDX ID | Nama |
|---|---|
| `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 (dedikasi domain-publik) |
| `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 |

### Copyleft lemah cakupan-berkas

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

### Lisensi aset (seni, audio, font yang dibundel di game)

| SPDX ID | Nama |
|---|---|
| `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 |

### Aturan ekspresi SPDX

- `MIT`: pengenal telanjang; harus muncul di atas.
- `MIT OR Apache-2.0`: cabang mana pun dari `OR` harus muncul di atas.
- `MIT AND CC-BY-4.0`: setiap cabang dari `AND` harus muncul di atas.
- `Apache-2.0 WITH LLVM-exception`: klausa `WITH` tak diterima.
- `LGPL-2.1+`: sufiks `+` (atau-lebih-baru) tak diterima.

### Mengapa beberapa lisensi dikecualikan

| Kategori | Contoh | Mengapa |
|---|---|---|
| Copyleft kuat | `GPL-*`, `AGPL-*` | Viral; pemicu jaringan `AGPL` §13 akut karena kami adalah host jaringan. (`GPL-2.0-only` diterima hanya untuk game milik sendiri yang diterbitkan Caputchin, bukan untuk pengajuan pihak-ketiga.) |
| Copyleft pustaka dengan ambiguitas bundling | `LGPL-*` | "Convey the library" terbaca ambigu untuk bundel JavaScript dan WebAssembly |
| Share-alike pada aset | `CC-BY-SA-*`, `CC-BY-NC-*`, `CC-BY-ND-*` | Share-alike mengontaminasi integrasi situs penyemat; aturan `NC` menyingkirkan penerapan komersial |
| Source-available (bukan OSI) | `BUSL-1.1`, `SSPL-1.0`, `Elastic-2.0` | Pembatasan bidang-pemakaian, pembatasan redistribusi, atau keduanya |

Perhatikan `BSL-1.0` (Boost Software License) permisif dan diterima; `BUSL-1.1` (Business Source License) tidak. Parser membandingkan terhadap string kanonik SPDX secara verbatim, jadi keduanya tak pernah bertabrakan.

## Lihat juga

- [Perbaiki kegagalan terbit](/docs/marketplace-game-development/publish-failed-fixes)
- [Manifest caputchin.json](/docs/marketplace-game-development/the-caputchin-json-manifest): bidang yang divalidasi galat-galat ini.
- [Ketentuan Pengajuan Marketplace](/legal/submission-terms) (Bagian 10 mencakup opt-out notifikasi)
