# PlayDrop MCP yükleme hataları ve kurtarma

PlayDrop’un MCP araçlarının döndürdüğü hata biçimi, aynı requestId ile ne zaman tekrar denenmeli ve her yaygın hata kodunun çözümü.

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

Her PlayDrop MCP aracı hatası değişmeyen `error` kodunu ve `path`, `field`, `name` veya `expected` gibi ayrıntıları korur ve şunları ekler:

- `message`: neyin yanlış gittiği, sade bir dille.
- `retryable`: yalnızca aynı çağrı daha sonra başarılı olabilecekse `true`.
- `nextAction`: somut düzeltme.
- `docsUrl` ve `documentationTopic`: okunacak kılavuz; `get_documentation` ile de alınabilir.

## Tekrar dene ya da düzelt

- **Tekrar denenebilir hatalar** (geçici hatalar, hız sınırları, yarıda kalan bir tamamlama): kısa bir beklemeden sonra aynı çağrıyı aynı `requestId` ile tekrar dene. Başka bir sürüm oluşturma.
- **Kaybolan yanıt:** işe yarayıp yaramadığını bilemezsin; bu yüzden aynı içeriği aynı `requestId` ile tekrar dene. PlayDrop iki kez yayınlamak yerine özgün sonucu döndürür.
- **Reddedilen girdi:** önce belirtilen alanı ya da dosyayı düzelt. Değişen içerik yeni bir `requestId` gerektirir; değişmemiş girdiyi tekrar denemek yine başarısız olur.
- **Kısmi paket sonuçları:** tamamlanan öğeler yayınlanmış kalır. Düzeltilmiş bir istek yalnızca bitmemiş işi içermelidir.
- **`send_feedback`** için tekrar deneme anahtarı yoktur. Belirsiz bir hatadan sonra otomatik olarak yeniden gönderme: ilk mesaj ulaşmış olabilir.

## Yaygın hatalar

| Kod | Ne yapmalı |
|---|---|
| `advanced_upload_required` | Oyun SDK’yı, bir sunucuyu, ayrı dosyaları ya da yalnızca pakete özgü alanları kullanıyor. Bu özellikleri koru ve yeni bir `requestId` ile bir [paket](https://www.playdrop.ai/tr/create/learn/packaging) yükle. |
| `invalid_html_file` | HTML boş ya da 10 MiB’tan büyük. Daha büyük oyunlar için bir paket kullan. |
| `visibility_required` | Bir paket uygulamasının görünürlüğü yok. İstekte ya da uygulamada `visibility` ayarla: `public`, `unlisted` veya `private`. |
| `invalid_visibility` | `public`, `unlisted` veya `private` kullan. |
| `visibility_conflict` | İstek ve bir uygulama girişi farklı görünürlükler istiyor. Kitlenin asla sessizce değişmemesi için tek bir değer ver. |
| `expected_current_version_required` | Her uygulamanın adını `expectedCurrentVersion` içine ekle: yeni bir oyun için `null`, aksi halde `list_games` içindeki güncel sürüm. |
| `current_version_changed` | Biri daha yeni bir sürüm yayınladı. `list_games` çağır, hedefi kullanıcınla doğrula, sonra güncel sürümle ve yeni bir `requestId` ile yükle. |
| `game_exists_use_id`, `game_not_found` | `list_games` çağır, doğru `gameId` değerini ya da adı kullan ve oyunun mevcut adını koru. |
| `request_id_content_conflict` | Bu `requestId` zaten farklı bir içeriğe ait. Yeni bir kimlik kullan ya da özgün içeriği değiştirmeden yeniden gönder. |
| `catalogue_file_missing_or_invalid` | Bir dosya yüklenmedi ya da baytları eşleşmiyor. `prepare_catalogue_upload` çağrısını aynı girdiyle ve aynı `requestId` ile tekrar yap, eksik dosyaları PUT ile gönder, sonra yeniden tamamla. |
| `catalogue_files_unclaimed` | Bazı dosyalar hiçbir katalog girişi tarafından kullanılmıyor. Onlara referans ver, oyun sayfası dosyalarına `role: "LISTING"` ve `app` ver ya da onları kaldır. |
| `entry_point_missing` | `apps[].file`, yüklenmemiş bir dosyayı belirtiyor. `file` olmadan giriş varsayılan olarak `<name>.html` olur. |
| `archive_catalogue_required` | catalogue.json dosyasını bir klasörün içine değil, ZIP’in köküne koy. |
| `archive_too_large` | Sıkıştırılmış hali 20 MiB’ı aşıyorsa: arşivi aç ve klasörü dosya başına 50 MiB’a kadar izin veren imzalı dosyalarla yükle. Açılmış hali 200 MiB’ı aşıyorsa: oyunun kendisi tek bir sürüm için fazla büyük; asset’leri sıkıştır ya da kaldır. |
| `procedural_module_validation_unavailable` | Çalıştırılabilir prosedürel 3D ya da özel biçimli modeller MCP üzerinden yüklenemez. Bunları sabit bir biçime dönüştür ya da yayınlanmış bir asset’e referans ver. |
| `upload_expired`, `upload_cancelled` | Yüklemeyi yeni bir `requestId` ile tekrar hazırla ve 30 dakika içinde tamamla. |
| `invalid_token`, `insufficient_scope` | PlayDrop hesabını yapay zeka uygulamanda yeniden bağla ve yayınlamaya izin ver. |

Geçersiz bir etiket, kumanda bildirimi ya da oyuncu modu gibi katalog alanı hataları [catalogue.json başvurusuna](https://www.playdrop.ai/tr/create/learn/catalogue-json) yönlendirir.

## Bağlantı ve ekler

- **Süresi dolmuş bağlantı:** etkin bir bağlantı kullanıldıkça kendini yeniler. 30 gün kullanılmamış ya da bu kuraldan önce süresi dolmuş bir bağlantının yeniden kurulması gerekir.
- **Reddedilen ek:** PlayDrop dosyaları yalnızca ana uygulamanın kendi ek hizmetinden indirir. Bu bir ülke kısıtlaması değil, dosya barındırma kısıtlamasıdır. Ana uygulamanın çözümlediği eki geçir ya da dosyaları imzalı URL’lerle yükle. Asla bir `download_url` veya `file_id` uydurma.

## Sorun bildir

Bir hata yanlış görünüyorsa ya da sonraki eylem işe yaramıyorsa `send_feedback` aracını bir kez çağır; araç adını, hata kodunu, ne gönderdiğini (jetonlar ya da imzalı URL’ler olmadan) ve ne beklediğini belirt.

## İlgili kılavuzlar

- [Yapay zeka uygulamandan yayınla](https://www.playdrop.ai/tr/create/learn/mcp-publishing): Yapay zeka ajanları PlayDrop’a MCP ile nasıl yayınlar: basit yol ve paket yolu, özel test, publish_game_version, güncellemeler, sınırlar ve kurtarma.
- [Paketleme ve .play](https://www.playdrop.ai/tr/create/learn/packaging): Kökünde catalogue.json olan derlenmiş bir klasör, ZIP ya da .play hazırla, oyun sayfası medyasını ve sunucuları bildir, prepare_catalogue_upload ile yükle.
- [Sorun giderme](https://www.playdrop.ai/tr/create/learn/troubleshooting): Engellenen oluşturma işlerini, belirsiz istemleri, eksik ödül veya kazançları, kredi sınırlarını ve web oyunu içe aktarma sorunlarını çöz.
