Referencia
Errores de subida del MCP de PlayDrop y cómo recuperarte
La forma de los errores de las herramientas MCP de PlayDrop, cuándo reintentar con el mismo requestId y la solución de cada código de error habitual.
Cada error de una herramienta MCP de PlayDrop conserva su código error estable y los detalles que tenga, como path, field, name o expected, y añade:
message: qué ha fallado, en palabras sencillas.retryable:truesolo cuando la misma llamada exacta puede funcionar más adelante.nextAction: la corrección concreta.docsUrlydocumentationTopic: la guía que hay que leer, también disponible conget_documentation.
Reintenta o corrige
- Errores reintentables (fallos temporales, límites de frecuencia, una finalización interrumpida): repite la misma llamada exacta con el mismo
requestIdtras una breve espera. No crees otra versión. - Respuesta perdida: no puedes saber si ha funcionado, así que reintenta con el mismo contenido y el mismo
requestId. PlayDrop devuelve el resultado original en lugar de publicar dos veces. - Entrada rechazada: corrige primero el campo o el archivo indicado. El contenido modificado necesita un nuevo
requestId; reintentar con la misma entrada vuelve a fallar. - Resultados parciales de un paquete: los elementos completados siguen publicados. Una solicitud corregida debe contener solo el trabajo pendiente.
send_feedbackno tiene clave de reintento. Tras un fallo ambiguo, no lo reenvíes automáticamente: puede que el primer mensaje haya llegado.
Errores habituales
| Código | Qué hacer |
|---|---|
advanced_upload_required | El juego usa el SDK, un servidor, archivos separados o campos exclusivos de los paquetes. Conserva esas funciones y sube un paquete con un nuevo requestId. |
invalid_html_file | El HTML está vacío o pesa más de 10 MiB. Usa un paquete para los juegos más grandes. |
visibility_required | Una app del paquete no tiene visibilidad. Indica visibility en la solicitud o en la app: public, unlisted o private. |
invalid_visibility | Usa public, unlisted o private. |
visibility_conflict | La solicitud y una entrada de app piden visibilidades distintas. Indica solo una, para que el público nunca cambie sin avisar. |
expected_current_version_required | Añade el nombre de cada app a expectedCurrentVersion: null para un juego nuevo y, si no, la versión actual de list_games. |
current_version_changed | Alguien ha publicado una versión más reciente. Llama a list_games, confirma el destino con tu usuario y sube con la versión actual y un nuevo requestId. |
game_exists_use_id, game_not_found | Llama a list_games, usa el gameId o el nombre correctos y conserva el nombre existente del juego. |
request_id_content_conflict | Este requestId ya pertenece a otro contenido. Usa un ID nuevo o vuelve a enviar el contenido original sin cambios. |
catalogue_file_missing_or_invalid | Un archivo no se ha subido o sus bytes no coinciden. Vuelve a llamar a prepare_catalogue_upload con la misma entrada y el mismo requestId, haz PUT de los archivos que faltan y vuelve a completar la subida. |
catalogue_files_unclaimed | Algunos archivos no los usa ninguna entrada del catálogo. Haz referencia a ellos, da a los archivos de la ficha role: "LISTING" y app, o elimínalos. |
entry_point_missing | apps[].file indica un archivo que no se ha subido. Sin file, la entrada es <name>.html por defecto. |
archive_catalogue_required | Pon catalogue.json en la raíz del ZIP, no dentro de una carpeta. |
archive_too_large | Más de 20 MiB comprimido: descomprímelo y sube la carpeta con archivos firmados, que admite hasta 50 MiB por archivo. Más de 200 MiB descomprimido: el propio juego es demasiado grande para una versión; comprime o elimina recursos. |
procedural_module_validation_unavailable | Los modelos 3D procedurales ejecutables o de formato personalizado no se pueden subir mediante MCP. Hornéalos o haz referencia a un recurso publicado. |
upload_expired, upload_cancelled | Vuelve a preparar la subida con un nuevo requestId y complétala en menos de 30 minutos. |
invalid_token, insufficient_scope | Vuelve a conectar la cuenta de PlayDrop en tu app de IA y permite la publicación. |
Los errores de campos del catálogo, como una etiqueta, una declaración de mandos o un modo de juego no válidos, remiten a la referencia de catalogue.json.
Conexión y archivos adjuntos
- Conexión caducada: una conexión activa se renueva sola mientras se usa. Una conexión sin usar durante 30 días, o una que caducó antes de esta regla, hay que volver a conectarla.
- Archivo adjunto rechazado: PlayDrop solo descarga archivos del propio servicio de adjuntos del host. Es una restricción del alojamiento de archivos, no de país. Pasa el adjunto resuelto por el host o sube los archivos con URL firmadas. Nunca te inventes un
download_urlni unfile_id.
Informa de un problema
Si un error parece incorrecto o la siguiente acción no funciona, llama una vez a send_feedback con el nombre de la herramienta, el código de error, lo que enviaste (sin tokens ni URL firmadas) y lo que esperabas.