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.
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:trueuniquement quand le même appel, à l’identique, peut réussir plus tard.nextAction: la correction concrète.docsUrletdocumentationTopic: le guide à lire, également disponible avecget_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
requestIdaprè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_feedbackn’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 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.
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_urlni defile_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.