---
title: "Résoudre un échec d'erpc worker"
description: "Les messages d'erreur d'erpc worker les plus fréquents, leur sens et que faire, comment récupérer un serveur peut-être compromis, et ce qu'erpc ne fait jamais."
canonical: "https://erpc.global/fr/doc/erpc-cli/worker-troubleshooting/"
locale: "fr"
---

# Résoudre un échec d'erpc worker

Repérez le début du message affiché par `erpc worker`, et faites ce qu'indique sa ligne.

Cette page décrit ERPC CLI `v0.1.0-rc.4`, une préversion.

## Messages d'erreur et que faire

Les échecs du worker utilisent les codes et les statuts de sortie d'erpc : voir [Erreurs et codes de sortie](https://erpc.global/fr/doc/erpc-cli/commands/#erreurs-et-codes-de-sortie).

| Message (son début) | Pourquoi | Que faire |
| --- | --- | --- |
| `<app> cannot start without <SETTING>` | `run.requires` nomme un paramètre que rien ne définit | `erpc worker secret put <SETTING>`, définissez-le dans `[vars]`, ou déployez avec la ligne qui le définit (`--grpc`, `--unlimited`) |
| `your key was added but does not get in` | L'agent SSH n'a pas signé : 1Password est verrouillé, ou sa demande n'a pas été autorisée | Déverrouillez 1Password, autorisez la demande, et relancez la même commande. Elle se poursuit |
| `1Password could not …: authorization timeout` | 1Password a demandé un accord et personne n'a répondu | Autorisez la demande dans 1Password, puis relancez la commande |
| `<NAME> is empty; nothing was kept` | `secret put` a lu une entrée standard vide : le shell n'est pas un terminal | Lancez-la dans un terminal, ou transmettez la valeur par un pipe |
| `the keystore is locked, and nobody is at a terminal …` | Une commande sans terminal a besoin du keystore, et aucun déverrouillage n'est conservé | `erpc worker secret unlock` dans un terminal, puis relancez la commande |
| `nothing is kept under keystore:… on this machine` | La valeur a été conservée dans le keystore d'une autre machine | `erpc worker secret put <NAME> --replace` ici ; pour la clé, apportez tout le répertoire `keystore` de cette machine et sa phrase de passe |
| `release <id> failed: …; the server went back to <previous>` | La nouvelle release n'a pas passé son contrôle de santé | Consultez `erpc worker logs`. La release précédente tourne toujours |
| `… is locked: the trading key has not been handed over` | Le serveur a redémarré, l'agent a échoué ou a été tué et systemd l'a relancé, ou `stop --lock` | `erpc worker start` |
| `port <n> is taken: …` | Un autre worker maintenu en exécution a le même port du contrôle de santé, ou un autre programme écoute sur ce port | Donnez à l'application un port qui lui est propre dans `erpc.toml`, puis redéployez |
| `release <id> runs, and its WAF did not come up: …` | Le WAF n'a pas commencé à écouter. Le plus souvent, un autre programme occupe `waf.port` | `erpc worker logs --waf`, puis libérez le port ou changez `waf.port`, et redéployez. L'application tourne en attendant |
| `waf.<key> …` (de `check`, `deploy`) | Une clé `[waf]` sort de ses bornes, ou `waf.port` est inférieur à 1024 ou identique à celui de `run.port`, de SSH ou du contrôle de santé | Corrigez `erpc.toml`. `erpc worker check` liste tous les problèmes d'un coup |
| `the WAF's port <port> was not opened to …` (de `firewall allow`, `deny`, `sync`) | La modification laisserait entrer quelqu'un de nouveau sous des règles WAF que le serveur n'applique pas encore | `erpc worker deploy` : il met en place les nouvelles règles, puis ouvre le port |
| `<kind> line <id> did not become active in <n> minutes` | La ligne est toujours en cours de mise en place | Redéployez pour attendre davantage |
| `OUT_OF_STOCK` | Aucun serveur de ce forfait n'est disponible dans cette région | Déployez avec `--region <another>` |
| `the start may or may not have gone through: …` | La requête est partie et aucune réponse n'est revenue, ou la réponse était un 5xx, 408 ou 429 | Relancez la même commande : elle envoie la même requête |
| `this purchase, or another of the account's, is still being made …` | La première requête est toujours en cours, ou un autre achat du compte détient son verrou | Relancez la même commande sous peu : elle envoie la même requête |
| `… changed in 1Password since this command read it` | Une autre machine a écrit l'élément d'inventaire entre-temps | Relancez la commande |
| `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`) | Chacune des clés du compte a été refusée depuis cette machine : les clés sont arrivées à échéance, le compte n'a pas de forfait RPC partagé actif, ou les clés sont limitées à d'autres adresses, comme celle d'un serveur | L'[ERPC Web Dashboard](https://dashboard.erpc.global/fr) affiche la date de fin d'une clé et le forfait, et crée une nouvelle clé. Pour une clé limitée à l'adresse du serveur : `erpc worker secret put ERPC_API_KEY`, saisie ou transmise par un pipe |
| `shared: … HTTP 401` (bench) | Le RPC partagé a refusé la clé : pas de forfait RPC partagé actif, ou une mauvaise clé | Vérifiez le forfait dans le tableau de bord, ou définissez `ERPC_API_KEY` |
| `shared: … HTTP 429` (bench) | La limite de débit du forfait | Utilisez `--interval 150` ou plus |

### Un achat qu'erpc ne peut pas consigner

Lorsqu'un serveur ou une ligne a pu être démarré par une requête antérieure qu'erpc n'a pas pu consigner, examinez les serveurs et les lignes de votre compte dans le tableau de bord. Reprenez un serveur avec `erpc worker deploy --vps <ID>`, ou mettez fin à ce dont vous ne voulez pas. Retirez ensuite à la main l'entrée de `[env.<name>.starting]` dans `erpc.toml` : erpc n'a aucune option qui la supprime, et tant que ce n'est pas fait, la même commande envoie la même requête.

## Si le serveur a pu être compromis

1. Exécutez d'abord `erpc worker backup off`, pour révoquer la clé d'accès de sauvegarde du serveur. `off` n'annule pas ce que le serveur a déjà lu.
2. Transférez les fonds hors de sa clé de trading, et remplacez ses secrets.
3. Reconstruisez le serveur depuis l'[ERPC Web Dashboard](https://dashboard.erpc.global/fr), et redéployez.

Si la reconstruction a changé la clé d'hôte SSH du serveur, erpc refuse le serveur tant que vous n'avez pas mis à jour la clé épinglée. Un déploiement remet le code en place, pas l'état de l'application, que seule une sauvegarde peut restaurer ([Sauvegarder l'état de l'application](https://erpc.global/fr/doc/erpc-cli/worker-status-and-billing/#sauvegarder-létat-de-lapplication)).

## Ce qu'erpc ne fait jamais

- Mettre une clé, un secret, ou une URL qui en contient un, sur une ligne de commande.
- Écrire une clé de trading ou un secret d'application dans un fichier, à une exception près : son keystore sur votre machine, où chacun est chiffré sous votre phrase de passe. Sur un serveur, `erpc worker backup on` laisse les propres clés de sauvegarde du serveur dans un fichier réservé à root.
- Démarrer quoi que ce soit sans afficher son prix.
- Laisser un serveur ouvert : le pare-feu est en vigueur avant le premier démarrage de l'application.
- Joindre un serveur dont la clé d'hôte ne correspond pas à la clé épinglée.

[Le guide du worker](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/worker.md) liste tous les messages, y compris ceux du WAF.
