---
title: "Risolvere un errore di erpc worker"
description: "I messaggi di errore di erpc worker più frequenti, cosa significano e cosa fare, come recuperare un server forse compromesso e cosa erpc non fa mai."
canonical: "https://erpc.global/it/doc/erpc-cli/worker-troubleshooting/"
locale: "it"
---

# Risolvere un errore di erpc worker

Trova l'inizio del messaggio stampato da `erpc worker` e fai ciò che dice la sua riga.

Questa pagina descrive ERPC CLI `v0.1.0-rc.4`, una versione pre-release.

## Messaggi di errore e cosa fare

Gli errori del worker usano i codici e gli stati di uscita di erpc: vedi [Errori ed exit code](https://erpc.global/it/doc/erpc-cli/commands/#errori-ed-exit-code).

| Messaggio (inizio) | Perché | Cosa fare |
| --- | --- | --- |
| `<app> cannot start without <SETTING>` | `run.requires` indica un'impostazione che nulla definisce | `erpc worker secret put <SETTING>`, impostala in `[vars]`, oppure distribuisci con la linea che la imposta (`--grpc`, `--unlimited`) |
| `your key was added but does not get in` | L'agente SSH non ha firmato: 1Password è bloccato, oppure la sua richiesta non è stata consentita | Sblocca 1Password, consenti la richiesta ed esegui di nuovo lo stesso comando. Prosegue da dove era arrivato |
| `1Password could not …: authorization timeout` | 1Password ha chiesto un'approvazione e nessuno ha risposto | Consenti la richiesta in 1Password ed eseguilo di nuovo |
| `<NAME> is empty; nothing was kept` | `secret put` ha letto uno standard input vuoto: la shell non è un terminale | Eseguilo in un terminale, oppure passa il valore con una pipe |
| `the keystore is locked, and nobody is at a terminal …` | Un comando senza terminale ha bisogno del keystore, e non è conservato alcuno sblocco | `erpc worker secret unlock` in un terminale, poi di nuovo il comando |
| `nothing is kept under keystore:… on this machine` | Il valore è stato conservato nel keystore di un'altra macchina | `erpc worker secret put <NAME> --replace` qui; per la chiave, porta qui l'intera directory `keystore` di quella macchina e la sua passphrase |
| `release <id> failed: …; the server went back to <previous>` | La nuova release non ha superato l'health check | Vedi `erpc worker logs`. La release precedente è ancora in esecuzione |
| `… is locked: the trading key has not been handed over` | Il server si è riavviato, l'agente è andato in errore o è stato terminato e systemd l'ha riavviato, oppure `stop --lock` | `erpc worker start` |
| `port <n> is taken: …` | Un altro worker mantenuto in esecuzione ha la stessa porta di health check, oppure un altro programma è in ascolto su di essa | Assegna all'app una porta tutta sua in `erpc.toml`, poi distribuisci di nuovo |
| `release <id> runs, and its WAF did not come up: …` | Il WAF non ha iniziato ad ascoltare. Nella maggior parte dei casi, un altro programma occupa `waf.port` | `erpc worker logs --waf`, poi libera la porta o cambia `waf.port`, e distribuisci di nuovo. Nel frattempo l'app è in esecuzione |
| `waf.<key> …` (da `check`, `deploy`) | Una chiave di `[waf]` è fuori dai suoi limiti, oppure `waf.port` è inferiore a 1024 o coincide con `run.port`, con la porta di SSH o con quella dell'health check | Correggi `erpc.toml`. `erpc worker check` elenca tutti i problemi in una volta |
| `the WAF's port <port> was not opened to …` (da `firewall allow`, `deny`, `sync`) | La modifica lascerebbe entrare qualcuno di nuovo con regole del WAF che il server non esegue ancora | `erpc worker deploy`: mette in atto le nuove regole, poi apre la porta |
| `<kind> line <id> did not become active in <n> minutes` | La linea è ancora in fase di configurazione | Distribuisci di nuovo per attendere ancora |
| `OUT_OF_STOCK` | In quella regione non è disponibile alcun server di quel piano | Distribuisci con `--region <another>` |
| `the start may or may not have gone through: …` | La richiesta è partita e non è tornata alcuna risposta, oppure la risposta era 5xx, 408 o 429 | Esegui di nuovo lo stesso comando: invia la stessa richiesta |
| `this purchase, or another of the account's, is still being made …` | La prima richiesta è ancora in corso, oppure un altro acquisto dell'account detiene il suo lock | Esegui di nuovo lo stesso comando tra poco: invia la stessa richiesta |
| `… changed in 1Password since this command read it` | Nel frattempo un'altra macchina ha scritto l'elemento dell'inventario | Esegui di nuovo il comando |
| `the shared RPC takes none of the account's API keys from this machine (<n> tried)` (da `secret put --from-account`, `erpc rpc call`, `erpc webhook run`) | Ognuna delle chiavi dell'account è stata rifiutata da questa macchina: le chiavi sono scadute, l'account non ha un piano RPC condiviso attivo, oppure le chiavi sono limitate ad altri indirizzi, come quello di un server | La [ERPC Web Dashboard](https://dashboard.erpc.global/it) mostra la data di scadenza di una chiave e il piano, e crea una nuova chiave. Per una chiave limitata all'indirizzo del server: `erpc worker secret put ERPC_API_KEY`, digitata o passata con una pipe |
| `shared: … HTTP 401` (bench) | L'RPC condiviso ha rifiutato la chiave: nessun piano RPC condiviso attivo, oppure una chiave errata | Controlla il piano nella dashboard, oppure imposta `ERPC_API_KEY` |
| `shared: … HTTP 429` (bench) | Il rate limit del piano | Usa `--interval 150` o più |

### Un acquisto che erpc non riesce a registrare

Quando un server o una linea potrebbe essere stato avviato da una richiesta precedente che erpc non è riuscito a registrare, controlla i server e le linee del tuo account nella dashboard. Riprendi un server con `erpc worker deploy --vps <ID>`, oppure termina ciò che non ti serve. Poi rimuovi a mano la voce da `[env.<name>.starting]` in `erpc.toml`: erpc non ha alcun flag che la elimini, e fino ad allora lo stesso comando invia la stessa richiesta.

## Se il server potrebbe essere stato compromesso

1. Esegui per prima cosa `erpc worker backup off`, per revocare la chiave di accesso ai backup del server. `off` non annulla ciò che il server ha già letto.
2. Sposta i fondi dalla sua chiave di trading e sostituisci i suoi secret.
3. Ricostruisci il server dalla [ERPC Web Dashboard](https://dashboard.erpc.global/it) e distribuisci di nuovo.

Se la ricostruzione ha cambiato la chiave host SSH del server, erpc rifiuta il server finché non aggiorni la chiave fissata. Una distribuzione riporta il codice, non i dati di stato dell'app, che solo un backup può ripristinare ([Fare il backup dei dati di stato dell'app](https://erpc.global/it/doc/erpc-cli/worker-status-and-billing/#fare-il-backup-dei-dati-di-stato-dellapp)).

## Cosa erpc non fa mai

- Mettere su una riga di comando una chiave, un secret o un URL che ne contiene uno.
- Scrivere in un file una chiave di trading o un secret di un'app, con un'eccezione: il suo keystore sulla tua macchina, dove ciascuno è cifrato con la tua passphrase. Su un server, `erpc worker backup on` lascia le chiavi di backup proprie del server in un file accessibile solo a root.
- Avviare qualcosa senza mostrarne il prezzo.
- Lasciare un server aperto: il firewall è attivo prima del primo avvio dell'app.
- Raggiungere un server la cui chiave host non corrisponde a quella fissata.

[La guida del worker](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/worker.md) elenca ogni messaggio, compresi quelli del WAF.
