# Erreurs d’envoi MCP de PlayDrop et comment les corriger

La forme des erreurs renvoyées par les outils MCP de PlayDrop, quand réessayer avec le même requestId, et la correction de chaque code d’erreur courant.

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

Chaque erreur d’un outil MCP de PlayDrop conserve son code `error` stable et ses éventuels détails, comme `path`, `field`, `name` ou `expected`, et ajoute :

- `message` : ce qui s’est mal passé, en termes simples.
- `retryable` : `true` uniquement quand le même appel, à l’identique, peut réussir plus tard.
- `nextAction` : la correction concrète.
- `docsUrl` et `documentationTopic` : le guide à lire, également disponible avec `get_documentation`.

## Réessayer ou corriger

- **Erreurs à réessayer** (échecs temporaires, limites de débit, finalisation interrompue) : réessayez le même appel à l’identique avec le même `requestId` après une courte attente. Ne créez pas d’autre version.
- **Réponse perdue :** vous ne pouvez pas savoir si l’appel a réussi ; réessayez donc avec un contenu identique et le même `requestId`. PlayDrop renvoie le résultat d’origine au lieu de publier deux fois.
- **Entrée refusée :** corrigez d’abord le champ ou le fichier indiqué. Un contenu modifié exige un nouveau `requestId` ; réessayer avec la même entrée échoue de nouveau.
- **Résultats partiels d’un paquet :** les éléments terminés restent publiés. Une requête corrigée ne doit contenir que le travail inachevé.
- **`send_feedback`** n’a pas de clé de nouvelle tentative. Après un échec ambigu, ne renvoyez rien automatiquement : le premier message est peut-être arrivé.

## Erreurs courantes

| Code | Que faire |
|---|---|
| `advanced_upload_required` | Le jeu utilise le SDK, un serveur, des fichiers séparés ou des champs réservés aux paquets. Conservez ces fonctionnalités et envoyez un [paquet](https://www.playdrop.ai/fr/create/learn/packaging) avec un nouveau `requestId`. |
| `invalid_html_file` | Le HTML est vide ou dépasse 10 MiB. Utilisez un paquet pour les jeux plus volumineux. |
| `visibility_required` | Une app du paquet n’a pas de visibilité. Définissez `visibility` dans la requête ou dans l’app : `public`, `unlisted` ou `private`. |
| `invalid_visibility` | Utilisez `public`, `unlisted` ou `private`. |
| `visibility_conflict` | La requête et une entrée d’app demandent des visibilités différentes. N’en indiquez qu’une, pour que le public ne change jamais à l’insu de quiconque. |
| `expected_current_version_required` | Ajoutez le nom de chaque app à `expectedCurrentVersion` : `null` pour un nouveau jeu, sinon la version actuelle issue de `list_games`. |
| `current_version_changed` | Quelqu’un a publié une version plus récente. Appelez `list_games`, confirmez la cible avec la personne que vous aidez, puis envoyez avec la version actuelle et un nouveau `requestId`. |
| `game_exists_use_id`, `game_not_found` | Appelez `list_games`, utilisez le bon `gameId` ou le bon nom, et conservez le nom existant du jeu. |
| `request_id_content_conflict` | Ce `requestId` correspond déjà à un autre contenu. Utilisez un nouvel identifiant, ou renvoyez le contenu d’origine sans modification. |
| `catalogue_file_missing_or_invalid` | Un fichier n’a pas été envoyé ou ses octets ne correspondent pas. Rappelez `prepare_catalogue_upload` avec une entrée identique et le même `requestId`, envoyez les fichiers manquants par PUT, puis finalisez de nouveau. |
| `catalogue_files_unclaimed` | Certains fichiers ne sont utilisés par aucune entrée du catalogue. Référencez-les, donnez aux fichiers de la fiche `role: "LISTING"` et `app`, ou supprimez-les. |
| `entry_point_missing` | `apps[].file` désigne un fichier qui n’a pas été envoyé. Sans `file`, l’entrée est par défaut `<name>.html`. |
| `archive_catalogue_required` | Placez catalogue.json à la racine du ZIP, pas dans un dossier. |
| `archive_too_large` | Plus de 20 MiB compressé : décompressez-le et envoyez le dossier avec des fichiers signés, ce qui autorise jusqu’à 50 MiB par fichier. Plus de 200 MiB décompressé : le jeu lui-même est trop volumineux pour une seule version ; compressez ou supprimez des ressources. |
| `procedural_module_validation_unavailable` | Les modèles 3D procéduraux exécutables et les modèles au format personnalisé ne peuvent pas être envoyés via MCP. Figez-les en modèle statique ou référencez une ressource publiée. |
| `upload_expired`, `upload_cancelled` | Préparez de nouveau l’envoi avec un nouveau `requestId` et finalisez-le dans les 30 minutes. |
| `invalid_token`, `insufficient_scope` | Reconnectez le compte PlayDrop dans votre app d’IA et autorisez la publication. |

Les erreurs de champs du catalogue, comme un tag non valide, une déclaration de manettes ou un mode de joueurs incorrect, renvoient à la [référence catalogue.json](https://www.playdrop.ai/fr/create/learn/catalogue-json).

## Connexion et pièces jointes

- **Connexion expirée :** une connexion active se renouvelle d’elle-même tant qu’elle est utilisée. Une connexion inutilisée depuis 30 jours, ou expirée avant l’entrée en vigueur de cette règle, doit être rétablie.
- **Pièce jointe refusée :** PlayDrop ne télécharge des fichiers que depuis le service de pièces jointes de l’hôte lui-même. Il s’agit d’une restriction liée à l’hébergeur des fichiers, pas au pays. Transmettez la pièce jointe résolue par l’hôte, ou envoyez les fichiers avec des URL signées. N’inventez jamais de `download_url` ni de `file_id`.

## Signaler un problème

Si une erreur semble incorrecte ou si l’action suivante ne fonctionne pas, appelez `send_feedback` une seule fois avec le nom de l’outil, le code d’erreur, ce que vous avez envoyé (sans jetons ni URL signées) et ce que vous attendiez.

## Guides associés

- [Publier depuis votre app d’IA](https://www.playdrop.ai/fr/create/learn/mcp-publishing): Comment les agents IA publient sur PlayDrop via MCP : voie simple et voie paquet, tests privés, publish_game_version, mises à jour, limites et reprise.
- [Paquets et .play](https://www.playdrop.ai/fr/create/learn/packaging): Organisez un dossier, ZIP ou .play compilé avec catalogue.json à la racine, déclarez médias de fiche et serveurs, puis envoyez avec prepare_catalogue_upload.
- [Dépannage](https://www.playdrop.ai/fr/create/learn/troubleshooting): Vérifiez les tâches bloquées, les demandes de correction, les récompenses ou gains manquants, les limites de Crédits et les problèmes d’import web.
