---
type: reference
title: Referencia de errores de publicación
summary: Cada código de error que el camino de publicación del marketplace puede emitir, con el disparador y dónde encontrar el arreglo.
---

Cada código de error que el camino de publicación del marketplace puede devolver, con el disparador y el enlace al arreglo. Para arreglos paso a paso, mira [Arregla un fallo de publicación](/docs/marketplace-game-development/publish-failed-fixes).

## Códigos de error

| Código | Disparador | Arreglo |
|---|---|---|
| `invalid-repo` | El campo de repositorio que introdujiste en el modal de publicación no parsea como `owner/name`. Solo publicación manual | Usa `owner/name` o la URL completa `https://github.com/owner/name` |
| `repo-not-found` | Nuestra descarga del manifiesto devolvió un 404. Tu repositorio es privado, falta, le falta el topic `caputchin-game`, o no tiene `caputchin.json` en la ruta esperada | [Haz el repositorio público + añade el topic + empuja un manifiesto](/docs/marketplace-game-development/publish-failed-fixes#repo-not-found) |
| `manifest-error` | Tu `caputchin.json` falló la validación. La cadena de detalle nombra el campo concreto. Mira [subcódigos de manifest-error](#manifest-error-sub-codes) | Arregla el campo que el detalle nombra |
| `bundle-fetch-failed` | La URL del bundle fijada por `entry` y/o `npm` no se pudo descargar, devolvió un no-2xx, o excede 12MB | [Verifica la URL y el tamaño del bundle](/docs/marketplace-game-development/publish-failed-fixes#bundle-fetch-failed) |
| `run-not-conforming` | La comprobación de humo del artefacto `run` opcional (corrido una vez con una semilla determinista) no devolvió un veredicto conforme. Tu juego sigue listado, solo muestra No reproducible y no puede ejercer de gate | [Haz tu simulación determinista](/docs/marketplace-game-development/publish-failed-fixes#run-not-conforming) |
| `rate-limited` | Demasiadas peticiones de publicación desde tu IP en los últimos 60 segundos | Espera 60 segundos y reintenta |

## Subcódigos de manifest-error [#manifest-error-sub-codes]

Cuando recibes un `manifest-error`, la cadena de detalle empieza con el campo que falla. Usa esta tabla para encontrar el arreglo correcto.

| Campo en el detalle | Significado | Arreglo |
|---|---|---|
| `terms_accepted` | El campo falta o no es el booleano literal de JSON `true` | [Fíjalo a `true` tras leer los Términos de Envío](/docs/marketplace-game-development/publish-failed-fixes#manifest-error-terms-accepted) |
| `license` | Falta, está malformada, o nombra un identificador SPDX fuera de la lista aprobada | [Elige un identificador de la lista aprobada](/docs/marketplace-game-development/publish-failed-fixes#manifest-error-license) |
| `(root)` | El archivo JSON no parsea como un objeto (tienes un array, cadena, o null de nivel superior) | Envuélvelo en `{ ... }` |
| `marketplace` | El bloque `marketplace` está presente pero no es un objeto | O hazlo un objeto o quítalo (los juegos solo-autoalojados omiten el bloque) |
| `marketplace.name` / `description` / `preview` | El campo no es una cadena | Conviértelo a cadena o quítalo |
| `marketplace.author` | El bloque está presente pero no es un objeto | Usa la forma `{ name?, url?, email? }` |
| `marketplace.author.name` / `url` | El subcampo no es una cadena | Conviértelo a cadena o quítalo |
| `marketplace.author.email` | No es una cadena O falla la comprobación de forma de correo | [Arregla la dirección o quita el campo](/docs/marketplace-game-development/publish-failed-fixes#manifest-error-author-email) |
| `entry` | El juego único no tiene `entry` ni `npm`, o el valor contiene recorrido (`../`), barras absolutas, separadores de Windows, query strings, o espacios en blanco | Provee una ruta relativa limpia |
| `npm` | No es una cadena, o falla el regex de nombre de npm | Usa un nombre de paquete npm válido |
| `entry/npm+games` | Tanto `entry`/`npm` como `games` declarados en el mismo nivel | Elige uno: los juegos únicos usan `entry`/`npm`; los envoltorios de colección usan `games` |
| `entry/npm` | El juego único no tiene ninguno | Añade uno |
| `games` | No es un array, contiene entradas que no son cadenas, contiene rutas de recorrido/absolutas, o contiene `.` / `./` (que se auto-referenciaría a la raíz del repo) | Arregla el array |
| `games[i]` | Una ruta hija concreta es inválida | Arregla esa entrada |
| `run` / `run.entry` / `run.modules[i].*` | La declaración de run dividido opcional está malformada | [Arregla según el esquema](/docs/marketplace-game-development/publish-failed-fixes#manifest-error-structure) |

## Licencias aprobadas [#approved-licenses]

Solo los manifiestos `caputchin.json` cuyo campo `license` evalúa a un identificador SPDX de esta lista pasan el gate de licencias. Mira [los Términos de Envío del Marketplace sección 4](/legal/submission-terms) para la versión vinculante.

### Licencias de código permisivas

| SPDX ID | Nombre |
|---|---|
| `MIT` | MIT License |
| `MIT-0` | MIT No Attribution |
| `Apache-2.0` | Apache License 2.0 |
| `BSD-2-Clause` | BSD 2-Clause "Simplified" |
| `BSD-3-Clause` | BSD 3-Clause "New" / "Revised" |
| `0BSD` | BSD Zero Clause |
| `ISC` | ISC License |
| `Zlib` | zlib License |
| `Unlicense` | The Unlicense (public-domain dedication) |
| `BSL-1.0` | Boost Software License 1.0 |
| `NCSA` | University of Illinois / NCSA Open Source License |
| `PostgreSQL` | PostgreSQL License |
| `Python-2.0` | Python License 2.0 |
| `PHP-3.01` | PHP License 3.01 |
| `Ruby` | Ruby License |
| `TCL` | Tcl/Tk License |
| `MS-PL` | Microsoft Public License |
| `AFL-3.0` | Academic Free License 3.0 |
| `MulanPSL-2.0` | Mulan Permissive Software License v2 |
| `WTFPL` | Do What The Fuck You Want To Public License |

### Copyleft débil de alcance de archivo

| SPDX ID | Nombre |
|---|---|
| `MPL-2.0` | Mozilla Public License 2.0 |
| `MS-RL` | Microsoft Reciprocal License |

### Licencias de assets (arte, audio, fuentes empaquetadas en el juego)

| SPDX ID | Nombre |
|---|---|
| `CC0-1.0` | Creative Commons Zero v1.0 |
| `CC-BY-3.0` | Creative Commons Attribution 3.0 |
| `CC-BY-4.0` | Creative Commons Attribution 4.0 |
| `OFL-1.1` | SIL Open Font License 1.1 |

### Reglas de expresión SPDX

- `MIT`: identificador a secas; debe aparecer arriba.
- `MIT OR Apache-2.0`: cualquier rama de un `OR` debe aparecer arriba.
- `MIT AND CC-BY-4.0`: cada rama de un `AND` debe aparecer arriba.
- `Apache-2.0 WITH LLVM-exception`: las cláusulas `WITH` no se aceptan.
- `LGPL-2.1+`: el sufijo `+` (o-posterior) no se acepta.

### Por qué se excluyen algunas licencias

| Categoría | Ejemplos | Por qué |
|---|---|---|
| Copyleft fuerte | `GPL-*`, `AGPL-*` | Viral; el disparador de red §13 de `AGPL` es agudo ya que nosotros somos el anfitrión de red. (`GPL-2.0-only` se acepta solo para juegos de primera parte publicados por Caputchin, no para envíos de terceros.) |
| Copyleft de librería con ambigüedad de empaquetado | `LGPL-*` | "Transmitir la librería" se lee de forma ambigua para los bundles de JavaScript y WebAssembly |
| Share-alike en assets | `CC-BY-SA-*`, `CC-BY-NC-*`, `CC-BY-ND-*` | El share-alike contamina la integración del sitio que incrusta; `NC` descarta el despliegue comercial |
| Source-available (no OSI) | `BUSL-1.1`, `SSPL-1.0`, `Elastic-2.0` | Restricciones de campo de uso, restricciones de redistribución, o ambas |

Nota que `BSL-1.0` (Boost Software License) es permisiva y se acepta; `BUSL-1.1` (Business Source License) no. El parser compara contra la cadena canónica SPDX de forma literal, así que las dos nunca colisionan.

## Véase también

- [Arregla un fallo de publicación](/docs/marketplace-game-development/publish-failed-fixes)
- [El manifiesto caputchin.json](/docs/marketplace-game-development/the-caputchin-json-manifest): los campos que estos errores validan.
- [Términos de Envío del Marketplace](/legal/submission-terms) (La sección 10 cubre el opt-out de notificaciones)
