---
type: how-to
title: Perbaiki kegagalan terbit marketplace
summary: "Panduan perbaikan untuk kegagalan terbit marketplace yang paling umum: tiap kode galat terdaftar dengan apa yang memicunya dan langkah sunting-dan-coba-ulang yang tepat untuk membereskannya, tanpa perlu meminta kami memeriksa-ulang apa pun."
---

Saat modal Terbitkan atau perbarui mengembalikan galat, atau kamu dapat email dari kami tentang kegagalan terbit, temukan kode galatmu di bawah dan ikuti perbaikannya. Begitu kamu mendorong perbaikan ke repositori-mu, klik Terbitkan atau perbarui lagi untuk memeriksa-ulang seketika, atau tunggu run pengindeks harian berikutnya.

Setiap kegagalan yang terdaftar di sini adalah sesuatu yang bisa kamu perbaiki di repositori-mu. Jika kamu tak melihat galatmu di sini, periksa [referensi galat terbit penuh](/docs/marketplace-game-development/publish-failed-reference) untuk kode yang kurang umum.

## terms_accepted tak disetel [#manifest-error-terms-accepted]

Kamu melihat ini saat `caputchin.json`-mu tak punya `"terms_accepted": true` di tingkat atas.

1. Buka `caputchin.json` repositori-mu.
2. Baca [Ketentuan Pengajuan Marketplace](/legal/submission-terms).
3. Tambahkan `"terms_accepted": true` di tingkat atas manifest.
4. Commit dan dorong.
5. Klik Terbitkan atau perbarui lagi, atau tunggu run indeks harian berikutnya.

Nilainya harus boolean JSON literal `true`. String (`"true"`), angka (`1`), atau menghilangkan bidang semua dihitung sebagai tak diterima.

## Lisensi tak ada di daftar yang disetujui [#manifest-error-license]

Kamu melihat ini saat `license` hilang, cacat, atau menyebut pengenal di luar [daftar yang disetujui](/docs/marketplace-game-development/publish-failed-reference#approved-licenses) kami.

1. Pilih pengenal SPDX dari daftar yang disetujui yang sungguh mencakup kodemu dan aset terbundel.
2. Buka `caputchin.json` dan setel bidang `license` di tingkat atas, misalnya `"license": "MIT"`.
3. Jika kodemu dwi-lisensi, pakai ekspresi `OR` SPDX (mis. `"MIT OR Apache-2.0"`). Setidaknya satu cabang harus ada di daftar yang disetujui.
4. Jika kodemu MIT tapi membundel aset Creative Commons, pakai `AND` (mis. `"MIT AND CC-BY-4.0"`). Setiap cabang harus ada di daftar yang disetujui.
5. Commit, dorong, coba-ulang.

Jika proyekmu bergantung pada lisensi yang tak ada di daftar yang disetujui kami (paling umum keluarga GPL, AGPL, atau LGPL), satu-satunya perbaikan adalah me-relisensi atau menyingkirkan komponen terdampak. Kami tak bisa memberi pengecualian per-penulis.

## Kami tak bisa menemukan repositori-mu [#repo-not-found]

Kamu melihat ini saat pengambilan manifest kami mengembalikan 404.

Penyebab dan perbaikan umum:

- Repositori-mu privat. Buat ia publik, atau singkirkan topik `caputchin-game` untuk berhenti muncul di indeks.
- Repositori-mu tak punya topik GitHub `caputchin-game`. Tambahkan ia lewat bagian About di halaman repositori.
- Repositori-mu tak punya `caputchin.json` di akar (atau, untuk game anak di koleksi, tak ada `caputchin.json` di direktori leaf).
- URL repositori yang kamu masukkan salah. Pakai `owner/name` atau URL penuh `https://github.com/owner/name`.

Dorong sebuah `caputchin.json` ke repositori-mu, lalu coba-ulang.

## Struktur manifest cacat [#manifest-error-structure]

Kamu melihat `manifest-error` yang detailnya dimulai dengan nama bidang seperti `entry`, `npm`, `games`, `marketplace.support`, atau `run.modules[0].name`.

Detail memberitahumu persis bidang mana yang salah:

- `entry: entry must be a clean relative path`: nilai `entry`-mu berisi traversal (`../`), slash absolut, query string, atau spasi. Pakai path relatif-repo bersih seperti `dist/game.js`.
- `npm: npm package name is malformed`: bidang `npm`-mu bukan koordinat npm yang sah. Pakai `name` atau `@scope/name`, alfanumerik + tanda-hubung + titik + garis-bawah saja.
- `games[i] must be a relative path inside the repo`: sebuah path anak di array `games` koleksimu lolos dari repo. Pakai path seperti `packages/leaf-memory`, bukan `../external` atau `/abs/path`.
- `run.entry must be a clean relative path`: aturan higiene yang sama dengan `entry`, diterapkan ke entri split-run opsional.
- `run.modules[i].name`: nama modul harus cocok `[a-zA-Z0-9_-]+\.(wasm|js)$` dan tak boleh `entry.js` atau `artifact.js`.

Sunting bidang yang disebut per aturan, commit, dorong, coba-ulang.

## marketplace.author punya email tak sah [#manifest-error-author-email]

Kamu melihat ini saat `marketplace.author.email` hadir tapi tak cocok bentuk email normal (satu `@`, domain bertitik, tanpa spasi).

1. Buka `caputchin.json`.
2. Temukan `marketplace.author.email`.
3. Entah perbaiki nilainya ke alamat email nyata (kami memakainya hanya untuk notifikasi kegagalan-terbit) atau singkirkan bidang sepenuhnya.
4. Commit, dorong, coba-ulang.

Kamu juga bisa menyingkirkan seluruh blok `marketplace.author` jika kamu tak ingin menerima notifikasi kegagalan-terbit.

## Artefak run-mu non-deterministik [#run-not-conforming]

Kamu melihat ini saat smoke kesesuaian kami menjalankan fungsi `run(seed, trace)` game-mu dan ia tak menghasilkan vonis yang sesuai.

Penting: ini bukan kegagalan terbit fatal. Game-mu tetap terdaftar di jelajah marketplace dan bisa disematkan. Ia sekadar menunjukkan **Tidak bisa diputar ulang** dan tak bisa menggerbang sebuah kunci situs sampai masalah determinisme diperbaiki.

Penyebab umum:

- Simulasimu membaca `Date.now()`, `performance.now()`, `Math.random()`, atau global non-deterministik lain.
- Simulasimu membaca state eksternal (DOM, jaringan, penyimpanan) yang tak kami sediakan saat waktu putar-ulang.
- Simulasimu bergantung pada aritmetika titik-mengambang yang berbeda antar runtime.

Perbaiki simulasi agar menjadi fungsi murni dari seed dan trace, dorong, coba-ulang. Lihat [kontrak putar-ulang](/docs/marketplace-game-development/replay-contract#determinism-is-the-whole-requirement) untuk aturan determinisme, dan pertimbangkan [kit engine](/docs/marketplace-game-development/engine-kit) opsional, yang menyediakan RNG dan jam yang bisa-disemai deterministik.

## Pengambilan bundel gagal [#bundle-fetch-failed]

Kamu melihat ini saat URL bundel yang dipin oleh `entry` dan/atau `npm` tak bisa diambil, mengembalikan non-2xx, atau melebihi 12MB.

- Jika kamu baru mendorong versi baru: CDN mungkin belum menyebar. Tunggu sebentar dan coba-ulang.
- Jika bundel-mu di atas 12MB: pangkas aset, pisahkan menjadi modul lewat deklarasi `run`, atau pindahkan aset besar ke jalur pengiriman berbeda.
- Jika paket `npm`-mu belum diterbitkan: terbitkan ia dulu; kami tak bisa mengambil versi yang belum diterbitkan.

## Terlalu banyak permintaan terbit [#rate-limited]

Kamu melihat ini di modal terbit-manual saat kamu mengajukan lebih dari sepuluh permintaan dalam 60 detik terakhir.

Tunggu 60 detik dan coba-ulang. Tak ada cara menaikkan batas; ia melindungi endpoint dari penyalahgunaan.

## Menghentikan email notifikasi

Jika kamu ingin berhenti menerima email kegagalan-terbit, lihat [Ketentuan Pengajuan bagian 10](/legal/submission-terms). Alamat penerima adalah `marketplace.author.email`-mu di manifest; menyingkirkan atau mengubahnya menghentikan email.

## Lihat juga

- [Referensi galat terbit penuh](/docs/marketplace-game-development/publish-failed-reference)
- [Terbitkan ke marketplace](/docs/marketplace-game-development/publish-to-the-marketplace)
- [Ketentuan Pengajuan Marketplace](/legal/submission-terms)
