---
title: "Mengatasi kegagalan erpc worker"
description: "Pesan error erpc worker yang paling sering, arti dan langkahnya, cara memulihkan server yang mungkin sudah diambil alih, dan yang tidak pernah dilakukan erpc."
canonical: "https://erpc.global/id/doc/erpc-cli/worker-troubleshooting/"
locale: "id"
---

# Mengatasi kegagalan erpc worker

Cari awal pesan yang dicetak oleh `erpc worker`, lalu lakukan apa yang tertulis di barisnya.

Halaman ini menjelaskan ERPC CLI `v0.1.0-rc.4`, versi pra-rilis.

## Pesan error dan langkah yang perlu dilakukan

Kegagalan worker memakai kode dan status keluar milik erpc: lihat [Error dan exit code](https://erpc.global/id/doc/erpc-cli/commands/#error-dan-exit-code).

| Pesan (awalnya) | Penyebab | Yang perlu dilakukan |
| --- | --- | --- |
| `<app> cannot start without <SETTING>` | `run.requires` menyebut pengaturan yang tidak diisi oleh apa pun | `erpc worker secret put <SETTING>`, isi di `[vars]`, atau deploy dengan line yang mengisinya (`--grpc`, `--unlimited`) |
| `your key was added but does not get in` | Agen SSH tidak menandatangani: 1Password terkunci, atau permintaannya tidak diizinkan | Buka kunci 1Password, izinkan permintaan, lalu jalankan perintah yang sama lagi. Perintah itu melanjutkan prosesnya |
| `1Password could not …: authorization timeout` | 1Password meminta persetujuan dan tidak ada yang menjawab | Izinkan permintaan di 1Password, lalu jalankan lagi |
| `<NAME> is empty; nothing was kept` | `secret put` membaca standard input yang kosong: shell-nya bukan terminal | Jalankan di terminal, atau masukkan nilainya lewat pipe |
| `the keystore is locked, and nobody is at a terminal …` | Perintah tanpa terminal memerlukan keystore, dan tidak ada hasil buka kunci yang disimpan | `erpc worker secret unlock` di terminal, lalu jalankan perintah itu lagi |
| `nothing is kept under keystore:… on this machine` | Nilainya disimpan di keystore mesin lain | `erpc worker secret put <NAME> --replace` di sini; untuk kunci, bawa seluruh direktori `keystore` mesin itu beserta frasa sandinya |
| `release <id> failed: …; the server went back to <previous>` | Rilis baru tidak lolos health check | Lihat `erpc worker logs`. Rilis sebelumnya masih berjalan |
| `… is locked: the trading key has not been handed over` | Server di-reboot, agen gagal atau dihentikan paksa lalu systemd menjalankannya lagi, atau `stop --lock` | `erpc worker start` |
| `port <n> is taken: …` | Worker lain yang tetap dijalankan memakai port health check yang sama, atau program lain mendengarkan di port itu | Beri aplikasi port tersendiri di `erpc.toml`, lalu deploy lagi |
| `release <id> runs, and its WAF did not come up: …` | WAF tidak mulai mendengarkan. Paling sering, ada program lain di `waf.port` | `erpc worker logs --waf`, lalu kosongkan port itu atau ubah `waf.port`, dan deploy lagi. Sementara itu aplikasi tetap berjalan |
| `waf.<key> …` (dari `check`, `deploy`) | Sebuah key `[waf]` berada di luar batasnya, atau `waf.port` di bawah 1024 atau sama dengan `run.port`, port SSH, atau port health check | Perbaiki `erpc.toml`. `erpc worker check` mencantumkan semua masalah sekaligus |
| `the WAF's port <port> was not opened to …` (dari `firewall allow`, `deny`, `sync`) | Perubahan itu akan mengizinkan pihak baru masuk di bawah aturan WAF yang belum dijalankan oleh server | `erpc worker deploy`: perintah ini memasang aturan baru, lalu membuka port |
| `<kind> line <id> did not become active in <n> minutes` | Line masih dalam proses penyiapan | Deploy lagi untuk menunggu lebih lama |
| `OUT_OF_STOCK` | Tidak ada server dengan paket itu yang tersedia di region itu | Deploy dengan `--region <another>` |
| `the start may or may not have gone through: …` | Request sudah terkirim dan tidak ada jawaban yang kembali, atau jawabannya 5xx, 408, atau 429 | Jalankan perintah yang sama lagi: perintah itu mengirim request yang sama |
| `this purchase, or another of the account's, is still being made …` | Request pertama masih diproses, atau pembelian lain milik akun sedang memegang lock-nya | Jalankan perintah yang sama lagi beberapa saat kemudian: perintah itu mengirim request yang sama |
| `… changed in 1Password since this command read it` | Mesin lain menulis item inventaris sementara itu | Jalankan perintah itu lagi |
| `the shared RPC takes none of the account's API keys from this machine (<n> tried)` (dari `secret put --from-account`, `erpc rpc call`, `erpc webhook run`) | Setiap kunci milik akun ditolak dari mesin ini: kunci-kuncinya sudah berakhir, akun tidak memiliki paket shared RPC yang aktif, atau kunci-kuncinya dibatasi untuk alamat lain, seperti alamat server | [ERPC Web Dashboard](https://dashboard.erpc.global/id) menampilkan paket dan tanggal berakhir kunci, serta membuat kunci baru. Untuk kunci yang dibatasi pada alamat server: `erpc worker secret put ERPC_API_KEY`, diketik atau dimasukkan lewat pipe |
| `shared: … HTTP 401` (bench) | Shared RPC menolak kunci: tidak ada paket shared RPC yang aktif, atau kuncinya salah | Periksa paket di dashboard, atau atur `ERPC_API_KEY` |
| `shared: … HTTP 429` (bench) | Batas rate milik paket | Gunakan `--interval 150` atau lebih |

### Pembelian yang tidak dapat dicatat oleh erpc

Jika sebuah server atau line mungkin sudah diaktifkan oleh request sebelumnya yang tidak dapat dicatat oleh erpc, periksa server dan line akun Anda di dashboard. Pakai server yang sudah ada dengan `erpc worker deploy --vps <ID>`, atau akhiri apa yang tidak diinginkan. Lalu hapus entri dari `[env.<name>.starting]` di `erpc.toml` secara manual: erpc tidak punya flag untuk menghapusnya, dan sampai entri itu dihapus, perintah yang sama mengirim request yang sama.

## Jika server mungkin sudah diambil alih

1. Jalankan `erpc worker backup off` lebih dulu, untuk mencabut access key backup milik server. `off` tidak membatalkan apa yang sudah dibaca oleh server.
2. Pindahkan dana dari kunci trading-nya, dan ganti secret-nya.
3. Rebuild server dari [ERPC Web Dashboard](https://dashboard.erpc.global/id), lalu deploy lagi.

Jika rebuild mengubah kunci host SSH server, erpc menolak server itu sampai Anda memperbarui kunci yang disematkan. Deploy mengembalikan kode, bukan state aplikasi, yang hanya dapat dipulihkan oleh backup ([Backup state aplikasi](https://erpc.global/id/doc/erpc-cli/worker-status-and-billing/#backup-state-aplikasi)).

## Yang tidak pernah dilakukan erpc

- Menaruh kunci, secret, atau URL yang memuat salah satunya di command line.
- Menulis kunci trading atau secret aplikasi ke file, dengan satu pengecualian: keystore-nya di mesin Anda, tempat masing-masing dienkripsi dengan frasa sandi Anda. Di server, `erpc worker backup on` menaruh kunci backup milik server itu sendiri di file yang hanya dapat diakses root.
- Mengaktifkan apa pun tanpa menampilkan harganya.
- Membiarkan server terbuka: firewall sudah berlaku sebelum aplikasi dijalankan untuk pertama kalinya.
- Menjangkau server yang kunci host-nya tidak cocok dengan kunci yang disematkan.

[Panduan worker](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/worker.md) mencantumkan setiap pesan, termasuk pesan milik WAF.
