---
title: "أصلح عطلًا في erpc worker"
description: "رسائل خطأ erpc worker الأكثر شيوعًا، ومعنى كل منها وما يجب فعله، وكيف تستعيد خادمًا ربما استُولي عليه، وما لا يفعله erpc أبدًا."
canonical: "https://erpc.global/ar/doc/erpc-cli/worker-troubleshooting/"
locale: "ar"
---

# أصلح عطلًا في erpc worker

ابحث عن بداية الرسالة التي طبعها `erpc worker`، ونفّذ ما يقوله صفّها.

تصف هذه الصفحة ERPC CLI `v0.1.0-rc.4`، وهو إصدار تمهيدي.

## رسائل الخطأ وما يجب فعله

تستخدم أعطال الـ worker رموز erpc وحالات الخروج الخاصة به: راجع [الأخطاء ورموز الخروج](https://erpc.global/ar/doc/erpc-cli/commands/#الأخطاء-ورموز-الخروج).

| الرسالة (بدايتها) | السبب | ما يجب فعله |
| --- | --- | --- |
| `<app> cannot start without <SETTING>` | يسمّي `run.requires` إعدادًا لا يضبطه أي شيء | `erpc worker secret put <SETTING>`، أو اضبطه في `[vars]`، أو انشر مع الخط الذي يضبطه (`--grpc`، `--unlimited`) |
| `your key was added but does not get in` | لم يوقّع وكيل SSH: 1Password مقفل، أو لم يُسمح بطلبه | افتح قفل 1Password، واسمح بالطلب، وشغّل الأمر نفسه مرة أخرى. فيتابع العمل |
| `1Password could not …: authorization timeout` | طلب 1Password الموافقة ولم يُجب أحد | اسمح بالطلب في 1Password، وشغّله مرة أخرى |
| `<NAME> is empty; nothing was kept` | قرأ `secret put` إدخالًا قياسيًا فارغًا: الصدفة ليست طرفية | شغّله في طرفية، أو مرّر القيمة عبر أنبوب |
| `the keystore is locked, and nobody is at a terminal …` | أمر بلا طرفية يحتاج إلى مخزن المفاتيح، ولا يوجد فتح قفل محفوظ | `erpc worker secret unlock` في طرفية، ثم الأمر مرة أخرى |
| `nothing is kept under keystore:… on this machine` | حُفظت القيمة في مخزن المفاتيح على جهاز آخر | `erpc worker secret put <NAME> --replace` هنا؛ وبالنسبة إلى المفتاح، أحضر مجلد `keystore` الكامل من ذلك الجهاز وعبارة المرور الخاصة به |
| `release <id> failed: …; the server went back to <previous>` | لم يجتز الإطلاق الجديد فحص الصحة | راجع `erpc worker logs`. لا يزال الإطلاق السابق يعمل |
| `… is locked: the trading key has not been handed over` | أُعيد تشغيل الخادم، أو فشل الوكيل أو قُتل فأعاد systemd تشغيله، أو نُفِّذ `stop --lock` | `erpc worker start` |
| `port <n> is taken: …` | لدى worker آخر يُبقى قيد التشغيل منفذ فحص الصحة نفسه، أو يستمع عليه برنامج آخر | خصّص للتطبيق منفذًا خاصًا به في `erpc.toml`، ثم انشر مرة أخرى |
| `release <id> runs, and its WAF did not come up: …` | لم يبدأ WAF الاستماع. في أغلب الأحيان، يشغل برنامج آخر `waf.port` | `erpc worker logs --waf`، ثم حرّر المنفذ أو غيّر `waf.port`، وانشر مرة أخرى. يعمل التطبيق في هذه الأثناء |
| `waf.<key> …` (من `check` و`deploy`) | مفتاح في `[waf]` خارج حدوده، أو `waf.port` أقل من 1024، أو هو منفذ `run.port` أو منفذ SSH أو منفذ فحص الصحة | أصلح `erpc.toml`. يسرد `erpc worker check` كل المشكلات دفعة واحدة |
| `the WAF's port <port> was not opened to …` (من `firewall allow` و`deny` و`sync`) | من شأن التغيير أن يسمح بدخول شخص جديد وفق قواعد WAF لا يشغّلها الخادم بعد | `erpc worker deploy`: يضع القواعد الجديدة موضع التنفيذ، ثم يفتح المنفذ |
| `<kind> line <id> did not become active in <n> minutes` | لا يزال الخط قيد الإعداد | انشر مرة أخرى لتنتظر مدة أطول |
| `OUT_OF_STOCK` | لا يوجد خادم متاح من تلك الخطة في تلك المنطقة | انشر مع `--region <another>` |
| `the start may or may not have gone through: …` | غادر الطلب ولم يعد أي رد، أو كان الرد 5xx أو 408 أو 429 | شغّل الأمر نفسه مرة أخرى: فهو يرسل الطلب نفسه |
| `this purchase, or another of the account's, is still being made …` | لا يزال الطلب الأول قيد المعالجة، أو أن عملية شراء أخرى للحساب تمسك القفل | شغّل الأمر نفسه مرة أخرى بعد قليل: فهو يرسل الطلب نفسه |
| `… changed in 1Password since this command read it` | عدّل جهاز آخر عنصر الجرد في هذه الأثناء | شغّل الأمر مرة أخرى |
| `the shared RPC takes none of the account's API keys from this machine (<n> tried)` (من `secret put --from-account` و`erpc rpc call` و`erpc webhook run`) | رُفض كل مفتاح من مفاتيح الحساب من هذا الجهاز: انتهت صلاحية المفاتيح، أو ليس لدى الحساب خطة RPC مشتركة نشطة، أو أن المفاتيح مقيّدة بعناوين أخرى، مثل عنوان خادم | يعرض [ERPC Web Dashboard](https://dashboard.erpc.global/ar) تاريخ انتهاء المفتاح والخطة، ويُنشئ مفتاحًا جديدًا. وبالنسبة إلى مفتاح مقيّد بعنوان الخادم: `erpc worker secret put ERPC_API_KEY`، مكتوبًا أو مُمرَّرًا عبر أنبوب |
| `shared: … HTTP 401` (bench) | رفض RPC المشترك المفتاح: لا توجد خطة RPC مشتركة نشطة، أو المفتاح خاطئ | تحقّق من الخطة في لوحة التحكم، أو اضبط `ERPC_API_KEY` |
| `shared: … HTTP 429` (bench) | حد المعدل في الخطة | استخدم `--interval 150` أو أكثر |

### عملية شراء لا يستطيع erpc تدوينها

عندما يُحتمل أن يكون خادم أو خط قد بُدئ بطلب سابق لم يستطع erpc تدوينه، راجع خوادم حسابك وخطوطه في لوحة التحكم. اعتمد خادمًا باستخدام `erpc worker deploy --vps <ID>`، أو أنهِ ما لا تريده. ثم احذف المُدخل من `[env.<name>.starting]` في `erpc.toml` يدويًا: لا يوجد في erpc خيار يحذفه، وحتى ذلك الحين يرسل الأمر نفسه الطلب نفسه.

## إذا كان الخادم ربما استُولي عليه

1. شغّل `erpc worker backup off` أولًا، لإلغاء مفتاح الوصول للنسخ الاحتياطي الخاص بالخادم. لا يُبطل `off` ما قرأه الخادم بالفعل.
2. انقل الأموال من مفتاح التداول الخاص به، واستبدل أسراره.
3. أعد بناء الخادم من [ERPC Web Dashboard](https://dashboard.erpc.global/ar)، وانشر مرة أخرى.

إذا غيّرت إعادة البناء مفتاح مضيف SSH للخادم، يرفض erpc الخادم حتى تحدّث المفتاح المثبَّت. يعيد النشر الكود، لا بيانات حالة التطبيق، التي لا يمكن أن تستعيدها إلا نسخة احتياطية ([النسخ الاحتياطي لبيانات حالة التطبيق](https://erpc.global/ar/doc/erpc-cli/worker-status-and-billing/#النسخ-الاحتياطي-لبيانات-حالة-التطبيق)).

## ما لا يفعله erpc أبدًا

- وضع مفتاح أو سر أو عنوان URL يحمل أحدهما في سطر أوامر.
- كتابة مفتاح تداول أو سر تطبيق في ملف، باستثناء واحد: مخزن مفاتيح erpc على جهازك، حيث يُشفَّر كل منهما بعبارة المرور الخاصة بك. وعلى الخادم، يترك `erpc worker backup on` مفاتيح النسخ الاحتياطي الخاصة بالخادم نفسه في ملف لا يصل إليه إلا root.
- بدء أي شيء دون عرض سعره.
- ترك خادم مفتوحًا: جدار الحماية ساري المفعول قبل أول تشغيل للتطبيق.
- الوصول إلى خادم لا يطابق مفتاح مضيفه المفتاح المثبَّت.

[دليل الـ worker](https://github.com/elsoul/erpc-cli/blob/v0.1.0-rc.4/docs/worker.md) يسرد كل رسالة، بما فيها رسائل WAF.
