---
type: how-to
title: Arregla un fallo de publicación en el marketplace
summary: "Una guía de arreglos para los fallos de publicación en el marketplace más comunes: cada código de error está listado con lo que lo dispara y los pasos exactos de una-edición-y-reintenta para resolverlo, sin necesidad de pedirnos que volvamos a comprobar nada."
---

Cuando el modal de Publicar o actualizar devuelve un error, o recibes un correo nuestro sobre un fallo de publicación, encuentra tu código de error abajo y sigue el arreglo. Una vez que empujas el arreglo a tu repositorio, haz clic en Publicar o actualizar de nuevo para volver a comprobar de inmediato, o espera a la siguiente ejecución diaria del indexador.

Cada fallo listado aquí es algo que puedes arreglar en tu repositorio. Si no ves tu error aquí, revisa la [referencia completa de errores de publicación](/docs/marketplace-game-development/publish-failed-reference) para códigos menos comunes.

## terms_accepted no está fijado [#manifest-error-terms-accepted]

Ves esto cuando tu `caputchin.json` no tiene `"terms_accepted": true` en el nivel superior.

1. Abre el `caputchin.json` de tu repositorio.
2. Lee los [Términos de Envío del Marketplace](/legal/submission-terms).
3. Añade `"terms_accepted": true` en el nivel superior del manifiesto.
4. Haz commit y push.
5. Haz clic en Publicar o actualizar de nuevo, o espera a la siguiente ejecución diaria del índice.

El valor debe ser el booleano literal de JSON `true`. Las cadenas (`"true"`), los números (`1`), u omitir el campo cuentan todos como no aceptado.

## La licencia no está en la lista aprobada [#manifest-error-license]

Ves esto cuando `license` falta, está malformada, o nombra un identificador fuera de nuestra [lista aprobada](/docs/marketplace-game-development/publish-failed-reference#approved-licenses).

1. Elige un identificador SPDX de la lista aprobada que de verdad cubra tu código y tus assets empaquetados.
2. Abre `caputchin.json` y fija el campo `license` en el nivel superior, por ejemplo `"license": "MIT"`.
3. Si tu código tiene licencia dual, usa una expresión SPDX `OR` (p. ej. `"MIT OR Apache-2.0"`). Al menos una rama debe estar en la lista aprobada.
4. Si tu código es MIT pero empaqueta assets de Creative Commons, usa `AND` (p. ej. `"MIT AND CC-BY-4.0"`). Cada rama debe estar en la lista aprobada.
5. Haz commit, push, reintenta.

Si tu proyecto depende de una licencia que no está en nuestra lista aprobada (lo más común la familia GPL, AGPL, o LGPL), el único arreglo es relicenciar o quitar los componentes afectados. No podemos conceder excepciones por autor.

## No pudimos encontrar tu repositorio [#repo-not-found]

Ves esto cuando nuestra descarga del manifiesto devuelve un 404.

Causas comunes y arreglos:

- Tu repositorio es privado. Hazlo público, o quita el topic `caputchin-game` para dejar de aparecer en el índice.
- A tu repositorio le falta el topic de GitHub `caputchin-game`. Añádelo vía la sección About en la página del repositorio.
- Tu repositorio no tiene `caputchin.json` en la raíz (o, para juegos hijos en una colección, no tiene `caputchin.json` en el directorio leaf).
- La URL del repositorio que introdujiste está mal. Usa `owner/name` o la URL completa `https://github.com/owner/name`.

Empuja un `caputchin.json` a tu repositorio, luego reintenta.

## La estructura del manifiesto está malformada [#manifest-error-structure]

Ves un `manifest-error` cuyo detalle empieza con un nombre de campo como `entry`, `npm`, `games`, `marketplace.support`, o `run.modules[0].name`.

El detalle te dice exactamente qué campo está mal:

- `entry: entry must be a clean relative path`: tu valor `entry` contiene recorrido (`../`), barras absolutas, query strings, o espacios en blanco. Usa una ruta limpia relativa al repo como `dist/game.js`.
- `npm: npm package name is malformed`: tu campo `npm` no es una coordenada npm válida. Usa `name` o `@scope/name`, solo alfanuméricos + guiones + puntos + guiones bajos.
- `games[i] must be a relative path inside the repo`: una ruta hija en el array `games` de tu colección se escapa del repo. Usa rutas como `packages/leaf-memory`, no `../external` ni `/abs/path`.
- `run.entry must be a clean relative path`: la misma regla de higiene que `entry`, aplicada al entry de run dividido opcional.
- `run.modules[i].name`: el nombre del módulo debe coincidir con `[a-zA-Z0-9_-]+\.(wasm|js)$` y no puede ser `entry.js` ni `artifact.js`.

Edita el campo nombrado según la regla, haz commit, push, reintenta.

## marketplace.author tiene un correo inválido [#manifest-error-author-email]

Ves esto cuando `marketplace.author.email` está presente pero no coincide con una forma de correo normal (un `@`, un dominio con punto, sin espacios en blanco).

1. Abre `caputchin.json`.
2. Encuentra `marketplace.author.email`.
3. O arregla el valor a una dirección de correo real (la usamos solo para notificaciones de fallo de publicación) o quita el campo por completo.
4. Haz commit, push, reintenta.

También puedes quitar el bloque `marketplace.author` entero si no quieres recibir notificaciones de fallo de publicación.

## Tu artefacto run es no determinista [#run-not-conforming]

Ves esto cuando nuestra prueba de conformidad corre la función `run(seed, trace)` de tu juego y no produce un veredicto conforme.

Importante: esto no es un fallo de publicación fatal. Tu juego sigue listado en la navegación del marketplace y se puede incrustar. Solo muestra **No reproducible** y no puede ejercer de gate de una clave de sitio hasta que se arregle el problema de determinismo.

Causas comunes:

- Tu simulación lee `Date.now()`, `performance.now()`, `Math.random()`, u otros globales no deterministas.
- Tu simulación lee estado externo (DOM, red, almacenamiento) que no proveemos en el momento de la repetición.
- Tu simulación depende de aritmética de coma flotante que difiere entre runtimes.

Arregla la simulación para que sea una función pura de la semilla y la traza, push, reintenta. Mira [el contrato de repetición](/docs/marketplace-game-development/replay-contract#determinism-is-the-whole-requirement) para la regla de determinismo, y considera el [engine kit](/docs/marketplace-game-development/engine-kit) opcional, que provee un RNG sembrable determinista y un reloj.

## La descarga del bundle falló [#bundle-fetch-failed]

Ves esto cuando la URL del bundle fijada por `entry` y/o `npm` no se puede descargar, devuelve un no-2xx, o excede 12MB.

- Si acabas de empujar una nueva versión: el CDN puede no haber propagado todavía. Espera un minuto y reintenta.
- Si tu bundle supera los 12MB: recorta assets, divide en módulos vía la declaración `run`, o mueve los assets grandes a un camino de entrega distinto.
- Si tu paquete `npm` todavía no está publicado: publícalo primero; no podemos descargar versiones no publicadas.

## Demasiadas peticiones de publicación [#rate-limited]

Ves esto en el modal de publicación manual cuando has enviado más de diez peticiones en los últimos 60 segundos.

Espera 60 segundos y reintenta. No hay forma de subir el límite; protege el endpoint del abuso.

## Detener los correos de notificación

Si quieres dejar de recibir correos de fallo de publicación, mira [los Términos de Envío sección 10](/legal/submission-terms). La dirección destinataria es tu `marketplace.author.email` en el manifiesto; quitarlo o cambiarlo detiene los correos.

## Véase también

- [Referencia completa de errores de publicación](/docs/marketplace-game-development/publish-failed-reference)
- [Publica en el marketplace](/docs/marketplace-game-development/publish-to-the-marketplace)
- [Términos de Envío del Marketplace](/legal/submission-terms)
