# Kesalahan unggahan MCP PlayDrop dan cara memulihkannya

Bentuk kesalahan yang dikembalikan alat MCP PlayDrop, kapan mencoba lagi dengan requestId yang sama, dan perbaikan untuk setiap kode kesalahan umum.

Source: https://www.playdrop.ai/id/create/learn/errors

Setiap kesalahan alat MCP PlayDrop mempertahankan kode `error` yang stabil dan detail apa pun seperti `path`, `field`, `name`, atau `expected`, lalu menambahkan:

- `message`: apa yang salah, dalam bahasa sederhana.
- `retryable`: `true` hanya jika panggilan yang identik bisa berhasil nanti.
- `nextAction`: perbaikan yang konkret.
- `docsUrl` dan `documentationTopic`: panduan yang perlu dibaca, juga tersedia dengan `get_documentation`.

## Coba lagi atau perbaiki

- **Kesalahan yang bisa dicoba lagi** (kegagalan sementara, batas laju, penyelesaian yang terputus): ulangi panggilan yang identik dengan `requestId` yang sama setelah jeda singkat. Jangan membuat versi lain.
- **Respons hilang:** Anda tidak bisa tahu apakah panggilan berhasil, jadi ulangi konten yang identik dengan `requestId` yang sama. PlayDrop mengembalikan hasil aslinya alih-alih menerbitkan dua kali.
- **Input ditolak:** perbaiki dulu field atau berkas yang disebutkan. Konten yang diubah memerlukan `requestId` baru; mencoba lagi dengan input yang tidak diubah akan gagal lagi.
- **Hasil paket sebagian:** item yang sudah selesai tetap diterbitkan. Permintaan yang diperbaiki hanya boleh berisi pekerjaan yang belum selesai.
- **`send_feedback`** tidak punya kunci percobaan ulang. Setelah kegagalan yang tidak jelas, jangan kirim ulang secara otomatis: pesan pertama mungkin sudah sampai.

## Kesalahan umum

| Kode | Yang perlu dilakukan |
|---|---|
| `advanced_upload_required` | Game memakai SDK, server, berkas terpisah, atau field khusus paket. Pertahankan fitur itu dan unggah [paket](https://www.playdrop.ai/id/create/learn/packaging) dengan `requestId` baru. |
| `invalid_html_file` | HTML kosong atau lebih besar dari 10 MiB. Gunakan paket untuk game yang lebih besar. |
| `visibility_required` | Aplikasi dalam paket tidak memiliki visibilitas. Tetapkan `visibility` di permintaan atau di aplikasi: `public`, `unlisted`, atau `private`. |
| `invalid_visibility` | Gunakan `public`, `unlisted`, atau `private`. |
| `visibility_conflict` | Permintaan dan entri aplikasi meminta visibilitas yang berbeda. Berikan satu saja, agar audiens tidak pernah berubah diam-diam. |
| `expected_current_version_required` | Tambahkan nama setiap aplikasi ke `expectedCurrentVersion`: `null` untuk game baru, selain itu versi saat ini dari `list_games`. |
| `current_version_changed` | Seseorang telah menerbitkan versi yang lebih baru. Panggil `list_games`, konfirmasikan targetnya dengan pengguna Anda, lalu unggah dengan versi saat ini dan `requestId` baru. |
| `game_exists_use_id`, `game_not_found` | Panggil `list_games`, gunakan `gameId` atau nama yang benar, dan pertahankan nama game yang sudah ada. |
| `request_id_content_conflict` | `requestId` ini sudah dipakai untuk konten yang berbeda. Gunakan ID baru, atau kirim ulang konten asli tanpa perubahan. |
| `catalogue_file_missing_or_invalid` | Sebuah berkas belum diunggah atau byte-nya tidak cocok. Panggil `prepare_catalogue_upload` lagi dengan input yang identik dan `requestId` yang sama, lakukan PUT untuk berkas yang hilang, lalu selesaikan lagi. |
| `catalogue_files_unclaimed` | Beberapa berkas tidak dipakai oleh entri katalog mana pun. Rujuk berkas itu, berikan `role: "LISTING"` dan `app` pada berkas listingan, atau hapus berkasnya. |
| `entry_point_missing` | `apps[].file` menyebutkan berkas yang belum diunggah. Tanpa `file`, halaman masuk default-nya adalah `<name>.html`. |
| `archive_catalogue_required` | Letakkan catalogue.json di root ZIP, bukan di dalam folder. |
| `archive_too_large` | Lebih dari 20 MiB terkompresi: ekstrak lalu unggah foldernya dengan berkas bertanda tangan, yang mengizinkan hingga 50 MiB per berkas. Lebih dari 200 MiB setelah diekstrak: game itu sendiri terlalu besar untuk satu versi; kompres atau hapus aset. |
| `procedural_module_validation_unavailable` | Model 3D prosedural atau model berformat kustom yang dapat dieksekusi tidak bisa diunggah lewat MCP. Bake model tersebut atau rujuk aset yang sudah diterbitkan. |
| `upload_expired`, `upload_cancelled` | Siapkan unggahan lagi dengan `requestId` baru dan selesaikan dalam 30 menit. |
| `invalid_token`, `insufficient_scope` | Hubungkan ulang akun PlayDrop di aplikasi AI Anda dan izinkan penerbitan. |

Kesalahan field katalog, seperti tag, deklarasi pengontrol, atau mode pemain yang tidak valid, merujuk ke [referensi catalogue.json](https://www.playdrop.ai/id/create/learn/catalogue-json).

## Koneksi dan lampiran

- **Koneksi kedaluwarsa:** koneksi aktif memperbarui dirinya sendiri selama dipakai. Koneksi yang tidak dipakai selama 30 hari, atau yang sudah kedaluwarsa sebelum aturan ini berlaku, perlu dihubungkan lagi.
- **Lampiran ditolak:** PlayDrop hanya mengunduh berkas dari layanan lampiran milik host itu sendiri. Ini adalah pembatasan host berkas, bukan pembatasan negara. Berikan lampiran yang sudah disediakan oleh host, atau unggah berkas dengan URL bertanda tangan. Jangan pernah mengarang `download_url` atau `file_id`.

## Laporkan masalah

Jika kesalahan tampak keliru atau langkah berikutnya tidak berhasil, panggil `send_feedback` sekali dengan nama alat, kode kesalahan, apa yang Anda kirim (tanpa token atau URL bertanda tangan), dan apa yang Anda harapkan.

## Panduan terkait

- [Terbitkan dari aplikasi AI Anda](https://www.playdrop.ai/id/create/learn/mcp-publishing): Cara agen AI menerbitkan ke PlayDrop lewat MCP: jalur sederhana dan jalur paket, pengujian privat, publish_game_version, pembaruan, batas, dan pemulihan.
- [Pengemasan dan .play](https://www.playdrop.ai/id/create/learn/packaging): Susun folder hasil build, ZIP, atau .play dengan catalogue.json di root, deklarasikan media listingan dan server, lalu unggah dengan prepare_catalogue_upload.
- [Pemecahan masalah](https://www.playdrop.ai/id/create/learn/troubleshooting): Atasi tugas pembuatan yang terhambat, hasil yang tidak sesuai, hadiah atau penghasilan yang belum muncul, batas Kredit, dan masalah impor game web.
