# Códigos de erro

URL: https://0.0.0.0:3002/docs/api/erros

Os códigos estáveis do campo code nos erros da API do Hydro, com a mensagem padrão de cada um e os status HTTP mais comuns.

O campo `code` dos erros é estável e deve guiar a lógica do seu cliente. A tabela é gerada a partir do código-fonte e está sempre atualizada.

| code | Mensagem padrão |
|---|---|
| `validation_failed` | Alguns campos estão inválidos. |
| `bad_request` | Requisição inválida. |
| `unauthenticated` | Faça login para continuar. |
| `forbidden` | Você não tem permissão para esta ação. |
| `not_found` | Recurso não encontrado. |
| `conflict` | O recurso foi alterado por outra operação. Tente novamente. |
| `rate_limited` | Muitas tentativas. Aguarde um pouco e tente novamente. |
| `internal_error` | Erro interno. Tente novamente em instantes. |
| `invalid_token` | Link inválido ou expirado. |
| `workspace_suspended` | Este workspace está suspenso. |
| `workspace_limit_reached` | Você atingiu o limite de workspaces. |
| `slug_taken` | Este identificador já está em uso. |
| `last_owner` | O workspace precisa de pelo menos um proprietário. |
| `role_not_allowed` | Você não pode atribuir este papel. |
| `member_limit_reached` | O workspace atingiu o limite de membros. |
| `ingress_node_exists` | Já existe um ingresso central. Crie o node sem ingresso e faça a troca na página dele, depois que ele estiver no ar. |
| `agent_unavailable` | O binário do agente não está disponível neste servidor. |
| `payload_too_large` | Conteúdo maior que o permitido. |
| `quota_exceeded` | O workspace não tem recursos disponíveis no plano para este pedido. |
| `resource_below_minimum` | O tamanho pedido está abaixo do mínimo para este tipo de recurso. |
| `plan_required` | O workspace precisa de um plano ativo para criar ou aumentar recursos. |
| `plan_archived` | Este plano está arquivado. |
| `plan_order_stale` | O catálogo mudou enquanto você reordenava. Recarregue e tente de novo. |
| `app_slug_taken` | Já existe uma aplicação com este identificador no workspace. |
| `deployment_in_progress` | Já há um deploy em andamento para esta aplicação. |
| `artifact_too_large` | O arquivo passa do tamanho máximo permitido. |
| `artifact_invalid` | Envie um arquivo .zip válido com o código da aplicação. |
| `artifact_has_node_modules` | O .zip tem a pasta node_modules. Remova-a e envie de novo: as dependências são instaladas no build. |
| `image_not_found` | Imagem não encontrada ou não é pública. |
| `rollback_unavailable` | A imagem deste deploy não está mais disponível para rollback. |
| `app_not_deployed` | A aplicação ainda não tem um deploy no ar. |
| `build_failed` | O build falhou. Veja os logs do deploy. |
| `workspace_has_apps` | Exclua as aplicações do workspace antes de excluí-lo. |
| `apps_unavailable` | Aplicações indisponíveis: a plataforma ainda não foi configurada para elas. |
| `github_installation_not_found` | Conta do GitHub não encontrada ou sem acesso neste workspace. |
| `github_repository_not_found` | Repositório não encontrado ou fora do acesso do Hydro. |
| `github_unavailable` | O GitHub não respondeu. Tente de novo em instantes. |
| `cloudflare_token_invalid` | O token da Cloudflare é inválido ou não tem acesso à zona do domínio das aplicações. |
| `cloudflare_unavailable` | A Cloudflare não respondeu. Tente de novo em instantes. |
| `app_not_running` | A aplicação não está rodando. Inicie ou faça um deploy primeiro. |
| `file_not_found` | Arquivo ou pasta não encontrado. |
| `file_too_large` | Arquivo grande demais. |
| `file_exists` | Já existe um arquivo ou pasta com esse nome. |
| `path_invalid` | Caminho inválido. |
| `directory_not_empty` | A pasta não está vazia. |
| `name_taken` | Já existe uma aplicação ou banco com esse nome interno neste workspace. |
| `workspace_node_full` | O servidor deste workspace não tem espaço para esse tamanho. Reduza o tamanho ou fale com o suporte. |
| `workspace_node_unavailable` | O servidor deste workspace está indisponível agora (manutenção ou fora do ar). Tente de novo em instantes ou fale com o suporte. |
| `workspace_node_no_ingress` | O servidor deste workspace não recebe tráfego web, então não roda aplicações web. Use um worker ou fale com o suporte. |
| `public_port_exhausted` | Não há portas livres para acesso externo neste servidor. |
| `database_not_ready` | O banco ainda não está pronto. Tente de novo em instantes. |
| `domain_taken` | Esse domínio já está em uso na plataforma. |
| `subdomain_taken` | Esse endereço em acq.lat já está em uso. Escolha outro. |
| `domain_invalid` | Domínio inválido para uso com o Hydro. |
| `domain_not_verified` | O DNS do domínio ainda não aponta para o Hydro. |
| `billing_gateway_error` | O serviço de pagamentos não respondeu. Tente de novo em instantes. |
| `billing_active` | Este workspace tem uma assinatura em andamento. Altere o plano pela cobrança. |
| `billing_pending_payment` | A assinatura aguarda o primeiro pagamento. |
| `billing_profile_required` | Informe os dados de cobrança (nome, CPF ou CNPJ e e-mail). |
| `billing_no_subscription` | Este workspace não tem assinatura. |
| `backup_in_progress` | Já há um backup ou uma restauração em andamento para este recurso. |
| `backup_not_ready` | Este backup ainda não está pronto para restaurar. |
| `backup_rate_limited` | Faça no máximo um backup manual por hora. |
| `billing_past_due` | Há uma fatura em atraso. Pague para criar recursos ou religar os que pararam. |
| `plan_usage_exceeds` | O uso atual não cabe neste plano. Reduza os recursos antes de mudar. |
| `plan_not_purchasable` | Este plano não está disponível para contratação. |
| `same_plan` | O workspace já está neste plano. |
| `idempotency_conflict` | Esta Idempotency-Key já foi usada com outro conteúdo. |
| `idempotency_in_progress` | Uma requisição com esta Idempotency-Key ainda está em processamento. |

## Status HTTP mais comuns [#status-http-mais-comuns]

| Status | Quando                                                                                                                                                       |
| ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| 400    | Corpo inválido (`validation_failed`, `domain_invalid`) ou .zip com `node_modules` (`artifact_has_node_modules`)                                              |
| 401    | Sem token válido (`unauthenticated`)                                                                                                                         |
| 403    | Sem permissão (`forbidden`, `role_not_allowed`), plano exigido (`plan_required`) ou workspace suspenso                                                       |
| 404    | Recurso inexistente **ou** de outro workspace                                                                                                                |
| 409    | Conflito de estado (`name_taken`, `subdomain_taken`, `domain_taken`, `quota_exceeded`, `deployment_in_progress`, `database_not_ready`, `backup_in_progress`) |
| 422    | Reuso de `Idempotency-Key` com outro corpo; .zip ilegível ou inválido (`artifact_invalid`)                                                                   |
| 429    | Limite de requisições                                                                                                                                        |
