# Códigos de erro

Cada erro tem um código estável, uma mensagem e uma solução. Os códigos nunca são traduzidos.

## E_INTERNAL

HTTP 500 · exit 1

Algo deu errado dentro do GenPM.

**Solução:** Tente novamente com --verbose e, se persistir, reporte o problema com o requestId.

## E_BAD_REQUEST

HTTP 400 · exit 2

A requisição é inválida: …

**Solução:** Verifique os parâmetros e tente novamente.

## E_USAGE

HTTP 400 · exit 2

Uso inválido: …

**Solução:** Execute genpm --help para ver as opções disponíveis.

## E_CONFIRM_REQUIRED

HTTP 400 · exit 2

Confirmação necessária: …

**Solução:** Execute em um terminal interativo ou passe … para confirmar.

## E_PAYLOAD_TOO_LARGE

HTTP 413 · exit 2

O corpo da requisição é grande demais.

**Solução:** Envie no máximo 16 KB.

## E_NOT_FOUND

HTTP 404 · exit 3

… não foi encontrado.

**Solução:** Confira a grafia ou pesquise com genpm search <consulta>.

## E_NO_MATCHING_VERSION

HTTP 404 · exit 3

Nenhuma versão de … corresponde a ….

**Solução:** Execute genpm info … para ver as versões publicadas.

## E_DEST_CONFLICT

HTTP 409 · exit 4

… existe e não está vazio.

**Solução:** Use --dest <dir> ou --force (faz backup antes).

## E_RANGE_UNSATISFIED

HTTP 409 · exit 4

Nenhuma versão satisfaz todos os intervalos: …

**Solução:** Instale primeiro uma versão compatível do pacote em conflito ou fixe outra versão.

## E_ALREADY_INSTALLED

HTTP 409 · exit 4

… … já está instalado.

**Solução:** Nada a fazer. Use genpm list para ver os pacotes instalados.

## E_VERSION_EXISTS

HTTP 409 · exit 4

…@… já foi publicado.

**Solução:** As versões são imutáveis: incremente a versão em genpm.json e crie uma nova tag.

## E_DRIFT

HTTP 409 · exit 4

… tem alterações locais em ….

**Solução:** Use --keep-code para manter seu código ou --force para apagá-lo mesmo assim.

## E_REQUIRED_BY

HTTP 409 · exit 4

… é exigido por ….

**Solução:** Remova primeiro os pacotes dependentes.

## E_BUSY

HTTP 409 · exit 4

Outro processo do GenPM está modificando este projeto.

**Solução:** Aguarde a conclusão. Se nenhum estiver em execução, apague .genpm/.lock.

## E_PLAN_STALE

HTTP 409 · exit 4

O projeto mudou desde que o plano foi calculado.

**Solução:** Calcule o plano de novo (simulação) e confirme-o.

## E_NETWORK

HTTP 502 · exit 5

Não foi possível acessar ….

**Solução:** Verifique sua conexão, proxy ou GENPM_REGISTRY e tente novamente.

## E_UPSTREAM_GIT

HTTP 502 · exit 5

O servidor Git falhou: …

**Solução:** Verifique se o repositório é acessível com suas credenciais do Git e tente novamente.

## E_RATE_LIMITED

HTTP 429 · exit 5

Requisições demais.

**Solução:** Aguarde … e tente novamente.

## E_READ_ONLY

HTTP 503 · exit 5

O registro está em modo somente leitura durante a manutenção.

**Solução:** A instalação continua funcionando. Tente publicar mais tarde; atualizações em genpm.net.

## E_INTEGRITY

HTTP 422 · exit 6

A verificação de integridade de … falhou: …

**Solução:** Não use este pacote. Se persistir, reporte-o em genpm.net/report.

## E_SIGNATURE

HTTP 422 · exit 6

A assinatura do registro para … é inválida.

**Solução:** Não o instale. Atualize o GenPM (novas chaves de assinatura) e reporte se persistir.

## E_PATH_UNSAFE

HTTP 422 · exit 6

Caminho inseguro … (…).

**Solução:** Use um caminho relativo dentro do projeto, sem .., caminhos absolutos ou pastas reservadas.

## E_AUTORUN_FILE

HTTP 422 · exit 6

… contém arquivos que são executados automaticamente: ….

**Solução:** Esses arquivos nunca são instalados. Peça ao autor para removê-los ou use --allow-autorun apenas com publicadores verificados.

## E_SCAN_FAILED

HTTP 422 · exit 6

A análise de segurança rejeitou …: …

**Solução:** Corrija os achados listados por genpm validate e publique uma nova versão.

## E_INSECURE_PERMS

HTTP 400 · exit 6

… pode ser lido por outros usuários.

**Solução:** Execute chmod 600 ….

## E_QUARANTINED

HTTP 451 · exit 6

… está em revisão de segurança.

**Solução:** Tente mais tarde ou escolha outro pacote. As revisões levam menos de 24 horas úteis.

## E_REF_MUTABLE

HTTP 422 · exit 6

… não é uma referência imutável.

**Solução:** Use uma tag do Git ou o SHA completo de 40 caracteres de um commit, nunca uma branch.

## E_ADVISORY

HTTP 409 · exit 6

… … tem um alerta de segurança de severidade ….

**Solução:** Atualize para … ou posterior.

## E_TOO_LARGE

HTTP 422 · exit 6

… excede o limite de tamanho: …

**Solução:** Exclua arquivos com .genpmignore ou aumente o limite com --max-size se o pacote for legítimo.

## E_MANIFEST_INVALID

HTTP 422 · exit 6

genpm.json é inválido.

**Solução:** Corrija os campos listados nos detalhes. Execute genpm validate para um relatório completo.

## E_LOCK_INVALID

HTTP 422 · exit 6

genpm.lock é inválido ou está corrompido.

**Solução:** Restaure-o a partir do Git; nunca edite genpm.lock à mão.

## E_NAME_MISMATCH

HTTP 422 · exit 6

O nome do manifesto … não corresponde a ….

**Solução:** Publique com o nome declarado em genpm.json.

## E_REF_NOT_FOUND

HTTP 422 · exit 3

… não existe em ….

**Solução:** Crie e envie a tag: git tag … && git push --tags.

## E_REF_NOT_PUSHED

HTTP 422 · exit 4

… não está no remoto ou aponta para outro commit.

**Solução:** Envie a tag com git push origin ….

## E_REPO_NOT_ALLOWED

HTTP 422 · exit 7

… não pertence ao scope @….

**Solução:** Publique a partir de um repositório do dono no GitHub vinculado ao scope.

## E_REPO_CHANGED

HTTP 422 · exit 6

O repositório por trás de … mudou (possível repojacking).

**Solução:** Escreva para hello@genpm.net com o assunto [SECURITY] para transferir o pacote.

## E_CONTEXT_MISSING

HTTP 422 · exit 6

O arquivo de regras de IA … não existe.

**Solução:** Crie … (genpm init gera um modelo) ou defina x em genpm.json.

## E_CONTEXT_TOO_LARGE

HTTP 422 · exit 6

O arquivo de regras de IA … tem mais de 16 KB.

**Solução:** Encurte-o: mantenha as regras focadas em propósito, mapa, integração, convenções e proibições.

## E_AUTH

HTTP 401 · exit 7

Você não está logado, ou seu token é inválido ou expirou.

**Solução:** Execute genpm login (ou defina GENPM_TOKEN na CI).

## E_FORBIDDEN_SCOPE

HTTP 403 · exit 7

Você não pode publicar em @….

**Solução:** Peça permissão de publicação a um dono de @… ou use seu próprio scope.

## E_GIT_MISSING

HTTP 500 · exit 8

O Git não está instalado ou é anterior à 2.25.

**Solução:** Instale o Git 2.25 ou posterior e tente novamente.

## E_NODE_VERSION

HTTP 500 · exit 8

O GenPM precisa do Node.js 20.11 ou posterior (encontrado …).

**Solução:** Atualize o Node.js ou instale o binário independente do genpm, que não precisa dele: genpm.net/docs/install

## E_UPGRADE_UNSUPPORTED

HTTP 400 · exit 8

Esta cópia do GenPM foi instalada com …: genpm upgrade só atualiza o binário independente.

**Solução:** Atualize-a com … ou instale o binário em genpm.net/docs/install.

## E_UPGRADE_PERMISSION

HTTP 500 · exit 8

Não é possível substituir …: permissão negada.

**Solução:** Execute genpm upgrade com o usuário dono desse arquivo ou reinstale com o script de genpm.net/docs/install.

## E_UPGRADE_INTEGRITY

HTTP 422 · exit 6

O … baixado não corresponde ao checksum SHA-256 publicado.

**Solução:** Nada foi alterado. Tente novamente mais tarde; se acontecer de novo, avise em hello@genpm.net com o assunto [SECURITY].

## E_MCP_SERVE_UNAVAILABLE

HTTP 500 · exit 8

genpm mcp serve só vem incluído no binário independente do genpm.

**Solução:** Use npx -y @genpm/mcp como comando MCP (genpm mcp setup faz isso por você) ou instale o binário em genpm.net/docs/install.

## E_NOT_A_PROJECT

HTTP 400 · exit 8

Nenhum projeto encontrado em ….

**Solução:** Execute o comando dentro de um projeto (com package.json ou .git) ou passe --cwd <dir>.
