# Uploadfouten van PlayDrop MCP en hoe je herstelt

De vorm van fouten uit de MCP-tools van PlayDrop, wanneer je opnieuw probeert met dezelfde requestId en de oplossing voor elke veelvoorkomende foutcode.

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

Elke fout van een PlayDrop MCP-tool behoudt zijn vaste `error`-code en eventuele details zoals `path`, `field`, `name` of `expected`, en voegt toe:

- `message`: wat er misging, in gewone woorden.
- `retryable`: alleen `true` als dezelfde aanroep later kan slagen.
- `nextAction`: de concrete correctie.
- `docsUrl` en `documentationTopic`: de gids om te lezen, ook beschikbaar met `get_documentation`.

## Opnieuw proberen of corrigeren

- **Fouten die je opnieuw kunt proberen** (tijdelijke storingen, snelheidslimieten, een onderbroken afronding): probeer na een korte pauze dezelfde aanroep opnieuw met dezelfde `requestId`. Maak geen nieuwe versie.
- **Verloren antwoord:** je weet niet of het is gelukt, dus probeer dezelfde inhoud opnieuw met dezelfde `requestId`. PlayDrop geeft het oorspronkelijke resultaat terug in plaats van twee keer te publiceren.
- **Geweigerde invoer:** corrigeer eerst het genoemde veld of bestand. Gewijzigde inhoud heeft een nieuwe `requestId` nodig; ongewijzigde invoer opnieuw proberen mislukt weer.
- **Gedeeltelijke pakketresultaten:** afgeronde items blijven gepubliceerd. Een gecorrigeerd verzoek mag alleen het onafgemaakte werk bevatten.
- **`send_feedback`** heeft geen sleutel om opnieuw te proberen. Stuur na een onduidelijke fout niet automatisch opnieuw: het eerste bericht kan zijn aangekomen.

## Veelvoorkomende fouten

| Code | Wat je doet |
|---|---|
| `advanced_upload_required` | De game gebruikt de SDK, een server, losse bestanden of velden die alleen voor pakketten gelden. Behoud die functies en upload een [pakket](https://www.playdrop.ai/nl/create/learn/packaging) met een nieuwe `requestId`. |
| `invalid_html_file` | De HTML is leeg of groter dan 10 MiB. Gebruik een pakket voor grotere games. |
| `visibility_required` | Een app in een pakket heeft geen zichtbaarheid. Zet `visibility` op het verzoek of de app: `public`, `unlisted` of `private`. |
| `invalid_visibility` | Gebruik `public`, `unlisted` of `private`. |
| `visibility_conflict` | Het verzoek en een app-item vragen om verschillende zichtbaarheden. Geef er één op, zodat het publiek nooit ongemerkt verandert. |
| `expected_current_version_required` | Zet de naam van elke app in `expectedCurrentVersion`: `null` voor een nieuwe game, anders de huidige versie uit `list_games`. |
| `current_version_changed` | Iemand heeft een nieuwere versie gepubliceerd. Roep `list_games` aan, bevestig het doel met je mens en upload daarna met de huidige versie en een nieuwe `requestId`. |
| `game_exists_use_id`, `game_not_found` | Roep `list_games` aan, gebruik de juiste `gameId` of naam en behoud de bestaande naam van de game. |
| `request_id_content_conflict` | Deze `requestId` hoort al bij andere inhoud. Gebruik een nieuwe ID, of stuur de oorspronkelijke inhoud ongewijzigd opnieuw. |
| `catalogue_file_missing_or_invalid` | Een bestand is niet geüpload of de bytes komen niet overeen. Roep `prepare_catalogue_upload` opnieuw aan met dezelfde invoer en dezelfde `requestId`, PUT de ontbrekende bestanden en rond daarna opnieuw af. |
| `catalogue_files_unclaimed` | Sommige bestanden worden door geen enkel catalogusitem gebruikt. Verwijs ernaar, geef bestanden voor de gamepagina `role: "LISTING"` en `app`, of verwijder ze. |
| `entry_point_missing` | `apps[].file` noemt een bestand dat niet is geüpload. Zonder `file` wordt het startbestand standaard `<name>.html`. |
| `archive_catalogue_required` | Zet catalogue.json in de hoofdmap van de ZIP, niet in een map. |
| `archive_too_large` | Groter dan 20 MiB gecomprimeerd: pak hem uit en upload de map met ondertekende bestanden, wat tot 50 MiB per bestand toestaat. Groter dan 200 MiB uitgepakt: de game zelf is te groot voor één versie; comprimeer of verwijder assets. |
| `procedural_module_validation_unavailable` | Uitvoerbare procedurele 3D-modellen of modellen in een eigen formaat kun je niet via MCP uploaden. Bak ze of verwijs naar een gepubliceerde asset. |
| `upload_expired`, `upload_cancelled` | Bereid de upload opnieuw voor met een nieuwe `requestId` en rond hem binnen 30 minuten af. |
| `invalid_token`, `insufficient_scope` | Verbind het PlayDrop-account opnieuw in je AI-app en sta publiceren toe. |

Fouten in catalogusvelden, zoals een ongeldige tag, controllerdeclaratie of spelersmodus, verwijzen naar de [catalogue.json-referentie](https://www.playdrop.ai/nl/create/learn/catalogue-json).

## Verbinding en bijlagen

- **Verlopen verbinding:** een actieve verbinding vernieuwt zichzelf zolang hij wordt gebruikt. Een verbinding die 30 dagen niet is gebruikt, of een die verliep vóór deze regel, moet opnieuw worden verbonden.
- **Bijlage geweigerd:** PlayDrop downloadt alleen bestanden van de eigen bijlagedienst van de host. Dit is een beperking van de bestandshost, geen landbeperking. Geef de bijlage door zoals de host die heeft opgelost, of upload de bestanden met ondertekende URL's. Verzin nooit een `download_url` of `file_id`.

## Een probleem melden

Lijkt een fout niet te kloppen of werkt de volgende actie niet, roep dan één keer `send_feedback` aan met de naam van de tool, de foutcode, wat je hebt gestuurd (zonder tokens of ondertekende URL's) en wat je verwachtte.

## Gerelateerde gidsen

- [Publiceren vanuit je AI-app](https://www.playdrop.ai/nl/create/learn/mcp-publishing): Hoe AI-agents via MCP op PlayDrop publiceren: de eenvoudige route en de pakketroute, privé testen, publish_game_version, updates, limieten en herstel.
- [Verpakken en .play](https://www.playdrop.ai/nl/create/learn/packaging): Richt een gebouwde gamemap, ZIP of .play in met catalogue.json in de hoofdmap, geef media en servers op en upload met prepare_catalogue_upload.
- [Problemen oplossen](https://www.playdrop.ai/nl/create/learn/troubleshooting): Los geblokkeerde maaktaken, onduidelijke prompts, ontbrekende beloningen of inkomsten, creditlimieten en problemen bij het importeren van webgames op.
