---
type: reference
title: Referência de erros de publicação
summary: Cada código de erro que o caminho de publicação do marketplace pode emitir, com o gatilho e onde achar a correção.
---

Cada código de erro que o caminho de publicação do marketplace pode retornar, com o gatilho e o link para a correção. Para correções passo a passo, veja [Corrigir uma falha de publicação](/docs/marketplace-game-development/publish-failed-fixes).

## Códigos de erro

| Código | Gatilho | Correção |
|---|---|---|
| `invalid-repo` | O campo de repositório que você inseriu no modal de publicação não faz parse como `owner/name`. Só publicação manual | Use `owner/name` ou a URL completa `https://github.com/owner/name` |
| `repo-not-found` | Nossa busca de manifesto retornou um 404. Seu repositório é privado, está faltando, não tem o tópico `caputchin-game`, ou não tem `caputchin.json` no caminho esperado | [Torne o repositório público + adicione o tópico + dê push de um manifesto](/docs/marketplace-game-development/publish-failed-fixes#repo-not-found) |
| `manifest-error` | Seu `caputchin.json` falhou na validação. A string de detalhe nomeia o campo específico. Veja [subcódigos de manifest-error](#manifest-error-sub-codes) | Corrija o campo que o detalhe nomeia |
| `bundle-fetch-failed` | A URL do bundle fixada por `entry` e/ou `npm` não pôde ser buscada, retornou um não-2xx, ou excede 12MB | [Verifique a URL e o tamanho do bundle](/docs/marketplace-game-development/publish-failed-fixes#bundle-fetch-failed) |
| `run-not-conforming` | A checagem de fumaça do artefato `run` opcional (rodada uma vez com uma semente determinística) não retornou um veredito conforme. Seu jogo continua listado, só mostra Não reproduzível e não pode proteger | [Torne sua simulação determinística](/docs/marketplace-game-development/publish-failed-fixes#run-not-conforming) |
| `rate-limited` | Requisições de publicação demais do seu IP nos últimos 60 segundos | Espere 60 segundos e tente de novo |

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

Quando você recebe um `manifest-error`, a string de detalhe começa com o campo que falhou. Use esta tabela para achar a correção certa.

| Campo no detalhe | Significado | Correção |
|---|---|---|
| `terms_accepted` | O campo está faltando ou não é o booleano JSON literal `true` | [Defina-o como `true` depois de ler os Termos de Submissão](/docs/marketplace-game-development/publish-failed-fixes#manifest-error-terms-accepted) |
| `license` | Faltando, malformada, ou nomeia um identificador SPDX fora da lista aprovada | [Escolha um identificador da lista aprovada](/docs/marketplace-game-development/publish-failed-fixes#manifest-error-license) |
| `(root)` | O arquivo JSON não faz parse como um objeto (você tem um array, string ou null de nível superior) | Envolva-o em `{ ... }` |
| `marketplace` | O bloco `marketplace` está presente mas não é um objeto | Ou torne-o um objeto ou remova-o (jogos só-auto-hospedados omitem o bloco) |
| `marketplace.name` / `description` / `preview` | O campo não é uma string | Converta para string ou remova |
| `marketplace.author` | O bloco está presente mas não é um objeto | Use o formato `{ name?, url?, email? }` |
| `marketplace.author.name` / `url` | O subcampo não é uma string | Converta para string ou remova |
| `marketplace.author.email` | Não é uma string OU falha na checagem de formato de e-mail | [Corrija o endereço ou remova o campo](/docs/marketplace-game-development/publish-failed-fixes#manifest-error-author-email) |
| `entry` | Jogo único não tem `entry` nem `npm`, ou o valor contém travessia (`../`), barras absolutas, separadores Windows, query strings, ou espaço em branco | Forneça um caminho relativo limpo |
| `npm` | Não é uma string, ou falha na regex de nome npm | Use um nome de pacote npm válido |
| `entry/npm+games` | Tanto `entry`/`npm` quanto `games` declarados no mesmo nível | Escolha um: jogos únicos usam `entry`/`npm`; wrappers de coleção usam `games` |
| `entry/npm` | Jogo único não tem nenhum | Adicione um |
| `games` | Não é um array, contém entradas não-string, contém caminhos de travessia/absolutos, ou contém `.` / `./` (que autorreferenciaria a raiz do repositório) | Corrija o array |
| `games[i]` | Um caminho de filho específico é inválido | Corrija essa entrada |
| `run` / `run.entry` / `run.modules[i].*` | A declaração opcional de run dividido está malformada | [Corrija conforme o esquema](/docs/marketplace-game-development/publish-failed-fixes#manifest-error-structure) |

## Licenças aprovadas [#approved-licenses]

Só manifestos `caputchin.json` cujo campo `license` avalia para um identificador SPDX nesta lista passam no portão de licenciamento. Veja a [seção 4 dos Termos de Submissão do Marketplace](/legal/submission-terms) para a versão vinculante.

### Licenças de código permissivas

| SPDX ID | Nome |
|---|---|
| `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 fraco de escopo de arquivo

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

### Licenças de ativos (arte, áudio, fontes empacotados no jogo)

| SPDX ID | Nome |
|---|---|
| `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 |

### Regras de expressão SPDX

- `MIT`: identificador simples; precisa aparecer acima.
- `MIT OR Apache-2.0`: qualquer ramo de um `OR` precisa aparecer acima.
- `MIT AND CC-BY-4.0`: todo ramo de um `AND` precisa aparecer acima.
- `Apache-2.0 WITH LLVM-exception`: cláusulas `WITH` não são aceitas.
- `LGPL-2.1+`: o sufixo `+` (ou-posterior) não é aceito.

### Por que algumas licenças são excluídas

| Categoria | Exemplos | Por quê |
|---|---|---|
| Copyleft forte | `GPL-*`, `AGPL-*` | Viral; o gatilho de rede do §13 da `AGPL` é agudo já que somos o anfitrião da rede. (`GPL-2.0-only` é aceita só para jogos próprios publicados pela Caputchin, não para submissões de terceiros.) |
| Copyleft de biblioteca com ambiguidade de empacotamento | `LGPL-*` | "Transmitir a biblioteca" lê de forma ambígua para bundles de JavaScript e WebAssembly |
| Share-alike em ativos | `CC-BY-SA-*`, `CC-BY-NC-*`, `CC-BY-ND-*` | Share-alike contamina a integração do site que embute; `NC` exclui implantação comercial |
| Source-available (não OSI) | `BUSL-1.1`, `SSPL-1.0`, `Elastic-2.0` | Restrições de campo de uso, restrições de redistribuição, ou ambas |

Note que `BSL-1.0` (Boost Software License) é permissiva e aceita; `BUSL-1.1` (Business Source License) não é. O parser compara contra a string canônica SPDX de forma literal, então as duas nunca colidem.

## Veja também

- [Corrigir uma falha de publicação](/docs/marketplace-game-development/publish-failed-fixes)
- [O manifesto caputchin.json](/docs/marketplace-game-development/the-caputchin-json-manifest): os campos que estes erros validam.
- [Termos de Submissão do Marketplace](/legal/submission-terms) (a Seção 10 cobre a saída das notificações)
