---
title: "Corrigir uma falha do erpc worker"
description: "As mensagens de erro mais comuns do erpc worker, o que significam e o que fazer, como recuperar um servidor talvez comprometido e o que o erpc nunca faz."
canonical: "https://erpc.global/pt/doc/erpc-cli/worker-troubleshooting/"
locale: "pt"
---

# Corrigir uma falha do erpc worker

Encontre o início da mensagem que o `erpc worker` imprimiu e faça o que a linha correspondente diz.

Esta página descreve o ERPC CLI `v0.1.0-rc.4`, uma versão de pré-lançamento.

## Mensagens de erro e o que fazer

As falhas do worker usam os códigos e os status de saída do erpc: veja [Erros e códigos de saída](https://erpc.global/pt/doc/erpc-cli/commands/#erros-e-códigos-de-saída).

| Mensagem (início) | Por quê | O que fazer |
| --- | --- | --- |
| `<app> cannot start without <SETTING>` | `run.requires` nomeia uma configuração que nada define | `erpc worker secret put <SETTING>`, defina-a em `[vars]` ou implante com a linha que a define (`--grpc`, `--unlimited`) |
| `your key was added but does not get in` | O agente SSH não assinou: o 1Password está bloqueado, ou a solicitação dele não foi permitida | Desbloqueie o 1Password, permita a solicitação e execute o mesmo comando de novo. Ele continua de onde parou |
| `1Password could not …: authorization timeout` | O 1Password pediu aprovação e ninguém respondeu | Permita a solicitação no 1Password e execute de novo |
| `<NAME> is empty; nothing was kept` | O `secret put` leu uma entrada padrão vazia: o shell não é um terminal | Execute em um terminal ou passe o valor por pipe |
| `the keystore is locked, and nobody is at a terminal …` | Um comando sem terminal precisa do keystore, e nenhum desbloqueio está mantido | `erpc worker secret unlock` em um terminal e, depois, o comando de novo |
| `nothing is kept under keystore:… on this machine` | O valor foi guardado no keystore de outra máquina | `erpc worker secret put <NAME> --replace` aqui; para a chave, traga o diretório `keystore` inteiro daquela máquina e a frase-senha dele |
| `release <id> failed: …; the server went back to <previous>` | A nova release não passou no health check | Veja o `erpc worker logs`. A release anterior continua rodando |
| `… is locked: the trading key has not been handed over` | O servidor reiniciou, o agente falhou ou foi encerrado e o systemd o iniciou de novo, ou houve um `stop --lock` | `erpc worker start` |
| `port <n> is taken: …` | Outro worker mantido em execução tem a mesma porta de health check, ou outro programa escuta nela | Dê à aplicação uma porta própria no `erpc.toml` e implante de novo |
| `release <id> runs, and its WAF did not come up: …` | O WAF não começou a escutar. Na maioria das vezes, outro programa está em `waf.port` | `erpc worker logs --waf`, depois libere a porta ou altere `waf.port`, e implante de novo. Enquanto isso, a aplicação continua rodando |
| `waf.<key> …` (de `check`, `deploy`) | Uma chave de `[waf]` está fora dos limites dela, ou `waf.port` está abaixo de 1024 ou é igual a `run.port`, à porta do SSH ou à do health check | Corrija o `erpc.toml`. O `erpc worker check` lista todos os problemas de uma vez |
| `the WAF's port <port> was not opened to …` (de `firewall allow`, `deny`, `sync`) | A alteração deixaria alguém novo entrar sob regras do WAF que o servidor ainda não está executando | `erpc worker deploy`: ele coloca as novas regras em vigor e, depois, abre a porta |
| `<kind> line <id> did not become active in <n> minutes` | A linha ainda está sendo configurada | Implante de novo para esperar mais |
| `OUT_OF_STOCK` | Nenhum servidor desse plano está disponível nessa região | Implante com `--region <another>` |
| `the start may or may not have gone through: …` | A requisição saiu e nenhuma resposta voltou, ou a resposta foi 5xx, 408 ou 429 | Execute o mesmo comando de novo: ele envia a mesma requisição |
| `this purchase, or another of the account's, is still being made …` | A primeira requisição ainda está em andamento, ou outra compra da conta detém o bloqueio | Execute o mesmo comando de novo daqui a pouco: ele envia a mesma requisição |
| `… changed in 1Password since this command read it` | Outra máquina gravou o item do inventário nesse meio-tempo | Execute o comando de novo |
| `the shared RPC takes none of the account's API keys from this machine (<n> tried)` (de `secret put --from-account`, `erpc rpc call`, `erpc webhook run`) | Cada uma das chaves da conta foi recusada a partir desta máquina: a validade das chaves terminou, a conta não tem um plano de RPC compartilhado ativo, ou as chaves estão limitadas a outros endereços, como o de um servidor | O [ERPC Web Dashboard](https://dashboard.erpc.global/pt) mostra a data de término de uma chave e o plano, e é onde se cria uma nova chave. Para uma chave limitada ao endereço do servidor: `erpc worker secret put ERPC_API_KEY`, digitada ou passada por pipe |
| `shared: … HTTP 401` (no bench) | O RPC compartilhado recusou a chave: nenhum plano de RPC compartilhado ativo, ou uma chave errada | Verifique o plano no dashboard ou defina `ERPC_API_KEY` |
| `shared: … HTTP 429` (no bench) | O limite de taxa do plano | Use `--interval 150` ou mais |

### Uma compra que o erpc não consegue registrar

Quando um servidor ou uma linha pode ter sido ativado por uma requisição anterior que o erpc não conseguiu registrar, confira os servidores e as linhas da sua conta no dashboard. Passe a usar um servidor com `erpc worker deploy --vps <ID>`, ou encerre o que não for desejado. Depois, remova manualmente a entrada de `[env.<name>.starting]` no `erpc.toml`: o erpc não tem flag que a remova e, até lá, o mesmo comando envia a mesma requisição.

## Se o servidor pode ter sido comprometido

1. Execute primeiro o `erpc worker backup off`, para revogar a chave de acesso de backup do servidor. O `off` não desfaz o que o servidor já leu.
2. Transfira os fundos da chave de trading do servidor e substitua os segredos dele.
3. Reconstrua o servidor pelo [ERPC Web Dashboard](https://dashboard.erpc.global/pt) e implante de novo.

Se a reconstrução mudou a chave de host SSH do servidor, o erpc recusa o servidor até você atualizar a chave fixada. Uma implantação traz de volta o código, não o estado da aplicação, que só um backup pode restaurar ([Fazer backup do estado da aplicação](https://erpc.global/pt/doc/erpc-cli/worker-status-and-billing/#fazer-backup-do-estado-da-aplicação)).

## O que o erpc nunca faz

- Colocar uma chave, um segredo ou uma URL que contenha um deles em uma linha de comando.
- Gravar uma chave de trading ou um segredo de uma aplicação em um arquivo, com uma exceção: o keystore do erpc na sua máquina, onde cada um é criptografado com a sua frase-senha. Em um servidor, o `erpc worker backup on` deixa as chaves de backup do próprio servidor em um arquivo acessível somente ao root.
- Ativar qualquer coisa sem mostrar o preço.
- Deixar um servidor aberto: o firewall está em vigor antes de a aplicação iniciar pela primeira vez.
- Acessar um servidor cuja chave de host não corresponde à fixada.

[O guia do worker](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/worker.md) lista todas as mensagens, inclusive as do WAF.
