تسلسل الأوامر
شغّل هذه أولًا، بهذا الترتيب:- يعرض
openclaw gateway statusالسطرRuntime: running، وConnectivity probe: ok، وسطرCapability: .... - يبلّغ
openclaw doctorعن عدم وجود مشكلات إعدادات/خدمات حاجبة. - يعرض
openclaw channels status --probeحالة النقل الحية لكل حساب، وحيثما يكون ذلك مدعومًا، نتائج الفحص/التدقيق مثلworksأوaudit ok.
بعد التحديث
استخدم هذا عندما يكتمل تحديث لكن يكون Gateway متوقفًا، أو تكون القنوات فارغة، أو تبدأ استدعاءات النموذج بالفشل مع أخطاء 401.Update restartفيopenclaw status/openclaw status --all. تتضمن عمليات التسليم المعلّقة أو الفاشلة الأمر التالي الذي يجب تشغيله.plugin load failed: dependency tree corrupted; run openclaw doctor --fixضمن القنوات. يعني ذلك أن إعدادات القناة ما زالت موجودة، لكن تسجيل Plugin فشل قبل أن تتمكن القناة من التحميل.- أخطاء 401 من المزوّد بعد إعادة المصادقة. يفحص
openclaw doctor --fixظلال مصادقة OAuth القديمة لكل وكيل ويزيل النسخ القديمة لكي تحل جميع الوكلاء إلى الملف الشخصي المشترك الحالي.
عمليات التثبيت منقسمة الحالة وحارس الإعدادات الأحدث
استخدم هذا عندما تتوقف خدمة Gateway بشكل غير متوقع بعد تحديث، أو عندما تعرض السجلات أن ثنائيةopenclaw أقدم من الإصدار الذي كتب openclaw.json آخر مرة.
يختم OpenClaw عمليات كتابة الإعدادات بـ meta.lastTouchedVersion. لا تزال الأوامر للقراءة فقط قادرة على فحص إعدادات كتبها OpenClaw أحدث، لكن تعديلات العملية والخدمة ترفض المتابعة من ثنائية أقدم. تشمل الإجراءات المحظورة بدء خدمة Gateway، وإيقافها، وإعادة تشغيلها، وإلغاء تثبيتها، وإعادة تثبيت الخدمة قسرًا، وبدء Gateway في وضع الخدمة، وتنظيف المنفذ عبر gateway --force.
عدم تطابق البروتوكول بعد الرجوع
استخدم هذا عندما تواصل السجلات طباعةprotocol mismatch بعد خفض إصدار OpenClaw أو الرجوع عنه. يعني ذلك أن Gateway أقدم يعمل، لكن عملية عميل محلية أحدث لا تزال تحاول إعادة الاتصال بنطاق بروتوكول لا يستطيع Gateway الأقدم التحدث به.
protocol mismatch ... client=... v<version> min=<n> max=<n> expected=<n>في سجلات Gateway.Established clients:فيopenclaw gateway status --deepأوGateway clientsفيopenclaw doctor --deep. يسرد هذا عملاء TCP النشطين المتصلين بمنفذ Gateway، بما في ذلك PIDs وأسطر الأوامر عندما يسمح نظام التشغيل بذلك.- عملية عميل يشير سطر أوامرها إلى تثبيت OpenClaw الأحدث أو الغلاف الذي رجعت عنه.
- أوقف أو أعد تشغيل عملية عميل OpenClaw القديمة المعروضة بواسطة
gateway status --deep. - أعد تشغيل التطبيقات أو الأغلفة التي تضمّن OpenClaw، مثل لوحات المعلومات المحلية، والمحررات، ومساعدات خوادم التطبيقات، أو أصداف
openclaw logs --followطويلة التشغيل. - أعد تشغيل
openclaw gateway status --deepأوopenclaw doctor --deepوتأكد من اختفاء PID العميل القديم.
تخطي الرابط الرمزي لـ Skills باعتباره خروجًا عن المسار
استخدم هذا عندما تتضمن السجلات:~/.agents/skills، أو <workspace>/.agents/skills، أو <workspace>/skills، أو
~/.openclaw/skills عندما يحل هدفه الحقيقي إلى خارج ذلك الجذر
ما لم يكن الهدف موثوقًا به صراحة.
افحص الرابط:
~، أو /، أو مجلد مشروع متزامن كامل.
أبقِ allowSymlinkTargets محصورًا بجذر Skills الحقيقي الذي يحتوي على أدلة
SKILL.md الموثوقة.
إذا كان يجب أن يكتب تطبيق Skill Workshop أيضًا عبر مسارات Skills لمساحة العمل المرتبطة رمزيًا
والموثوقة هذه، ففعّل skills.workshop.allowSymlinkTargetWrites. أبقه
معطلًا لجذور Skills المشتركة للقراءة فقط.
ذات صلة:
Anthropic 429 يتطلب استخدامًا إضافيًا للسياق الطويل
استخدم هذا عندما تتضمن السجلات/الأخطاء:HTTP 429: rate_limit_error: Extra usage is required for long context requests.
- النموذج المحدد من Anthropic هو نموذج Claude 4.x بقدرة 1M ومتاح عمومًا، أو أن النموذج لديه
params.context1m: trueقديم. - اعتماد Anthropic الحالي غير مؤهل لاستخدام السياق الطويل.
- تفشل الطلبات فقط في الجلسات/تشغيلات النماذج الطويلة التي تحتاج إلى مسار سياق 1M.
Use a standard context window
بدّل إلى نموذج بنافذة سياق قياسية، أو أزل
context1m القديم من إعدادات
نموذج أقدم ليس متاحًا عمومًا لسياق 1M.Use an eligible credential
استخدم اعتماد Anthropic مؤهلًا لطلبات السياق الطويل، أو بدّل إلى مفتاح Anthropic API.
ردود 403 محظورة من المنبع
استخدم هذا عندما يعيد مزوّد LLM من المنبع خطأ403 عامًا مثل
Your request was blocked.
لا تفترض أن هذه مشكلة إعدادات OpenClaw دائمًا. يمكن أن يأتي الرد
من طبقة أمان في المنبع مثل CDN، أو WAF، أو قاعدة إدارة روبوتات، أو
وكيل عكسي أمام نقطة نهاية متوافقة مع OpenAI.
- عدة نماذج ضمن المزوّد نفسه تفشل بالطريقة نفسها
- HTML أو نص أمان عام بدلًا من خطأ API عادي من المزوّد
- أحداث أمان من جهة المزوّد في وقت الطلب نفسه
- نجاح فحص
curlمباشر صغير بينما تفشل الطلبات العادية ذات شكل SDK
الواجهة الخلفية المحلية المتوافقة مع OpenAI تجتاز الفحوصات المباشرة لكن تشغيلات الوكيل تفشل
استخدم هذا عندما:- يعمل
curl ... /v1/models - تعمل استدعاءات
/v1/chat/completionsالمباشرة الصغيرة - تفشل تشغيلات نماذج OpenClaw فقط في أدوار الوكيل العادية
- نجاح الاستدعاءات المباشرة الصغيرة، لكن فشل تشغيلات OpenClaw فقط مع المطالبات الأكبر
- أخطاء
model_not_foundأو 404 رغم أن/v1/chat/completionsالمباشر يعمل بمعرّف النموذج المجرّد نفسه - أخطاء الواجهة الخلفية حول توقع أن يكون
messages[].contentسلسلة نصية - تحذيرات
incomplete turn detected ... stopReason=stop payloads=0متقطعة مع واجهة خلفية محلية متوافقة مع OpenAI - انهيارات الواجهة الخلفية التي تظهر فقط مع أعداد رموز مطالبات أكبر أو مطالبات وقت تشغيل الوكيل الكاملة
Common signatures
Common signatures
model_not_foundمع خادم محلي بأسلوب MLX/vLLM → تحقق من أنbaseUrlيتضمن/v1، وأنapiهو"openai-completions"لواجهات/v1/chat/completionsالخلفية، وأنmodels.providers.<provider>.models[].idهو المعرّف المحلي المجرّد لدى المزوّد. حدده مع بادئة المزوّد مرة واحدة، مثلmlx/mlx-community/Qwen3-30B-A3B-6bit؛ وأبقِ إدخال الفهرس علىmlx-community/Qwen3-30B-A3B-6bit.messages[...].content: invalid type: sequence, expected a string→ ترفض الواجهة الخلفية أجزاء محتوى Chat Completions المنظمة. الإصلاح: عيّنmodels.providers.<provider>.models[].compat.requiresStringContent: true.validation.keysأو مفاتيح الرسائل المسموح بها مثل["role","content"]→ ترفض الواجهة الخلفية بيانات تعريف إعادة التشغيل بأسلوب OpenAI في رسائل Chat Completions. الإصلاح: عيّنmodels.providers.<provider>.models[].compat.strictMessageKeys: true.incomplete turn detected ... stopReason=stop payloads=0→ أكملت الواجهة الخلفية طلب Chat Completions لكنها لم تُعد نص مساعد مرئيًا للمستخدم لذلك الدور. يعيد OpenClaw محاولة الأدوار الفارغة المتوافقة مع OpenAI والآمنة لإعادة التشغيل مرة واحدة؛ تعني الإخفاقات المستمرة عادة أن الواجهة الخلفية تصدر محتوى فارغًا/غير نصي أو تكبت نص الإجابة النهائية.- تنجح الطلبات المباشرة الصغيرة، لكن تشغيلات وكلاء OpenClaw تفشل مع انهيارات في الواجهة الخلفية/النموذج (مثل Gemma على بعض بُنى
inferrs) → من المرجح أن نقل OpenClaw صحيح بالفعل؛ الواجهة الخلفية تفشل على شكل مطالبة وقت تشغيل الوكيل الأكبر. - تتقلص الإخفاقات بعد تعطيل الأدوات لكنها لا تختفي → كانت مخططات الأدوات جزءًا من الضغط، لكن المشكلة المتبقية لا تزال سعة نموذج/خادم من المنبع أو عطلًا في الواجهة الخلفية.
Fix options
Fix options
- عيّن
compat.requiresStringContent: trueلواجهات Chat Completions الخلفية التي تقبل السلاسل النصية فقط. - عيّن
compat.strictMessageKeys: trueلواجهات Chat Completions الخلفية الصارمة التي تقبل فقطroleوcontentفي كل رسالة. - عيّن
compat.supportsTools: falseللنماذج/الواجهات الخلفية التي لا تستطيع التعامل مع سطح مخطط أدوات OpenClaw بشكل موثوق. - خفّض ضغط المطالبة حيثما أمكن: تمهيد مساحة عمل أصغر، سجل جلسة أقصر، نموذج محلي أخف، أو واجهة خلفية بدعم أقوى للسياق الطويل.
- إذا استمرت الطلبات المباشرة الصغيرة في النجاح بينما ما زالت أدوار وكيل OpenClaw تنهار داخل الواجهة الخلفية، فتعامل معها كقيد في الخادم/النموذج من المنبع وقدّم إعادة إنتاج هناك مع شكل الحمولة المقبول.
لا توجد ردود
إذا كانت القنوات تعمل لكن لا شيء يجيب، فتحقق من التوجيه والسياسة قبل إعادة توصيل أي شيء.- اقتران معلق لمرسلي الرسائل المباشرة.
- تقييد ذكر المجموعة (
requireMention,mentionPatterns). - عدم تطابق قوائم السماح للقناة/المجموعة.
drop guild message (mention required→ تم تجاهل رسالة المجموعة حتى يحدث ذكر.pairing request→ يحتاج المرسل إلى موافقة.blocked/allowlist→ تمت تصفية المرسل/القناة بواسطة السياسة.
اتصال واجهة تحكم لوحة المعلومات
عندما لا تتصل لوحة المعلومات/واجهة التحكم، تحقق من عنوان URL ووضع المصادقة وافتراضات السياق الآمن.- عنوان URL الصحيح للفحص وعنوان URL للوحة المعلومات.
- عدم تطابق وضع المصادقة/الرمز بين العميل وGateway.
- استخدام HTTP حيث تكون هوية الجهاز مطلوبة.
127.0.0.1:18789 بعد تحديث، فاستعد أولًا
خدمة Gateway المحلية وتأكد من أنها تخدم لوحة المعلومات:
curl صفحة HTML الخاصة بـ OpenClaw، فهذا يعني أن Gateway يعمل وأن المشكلة المتبقية
غالبًا هي ذاكرة التخزين المؤقت للمتصفح، أو رابط عميق قديم، أو حالة تبويب قديمة. افتح
http://127.0.0.1:18789 مباشرة وانتقل من لوحة المعلومات. إذا لم تترك إعادة التشغيل
الخدمة قيد التشغيل، فشغل openclaw gateway start وأعد التحقق من
openclaw gateway status.
علامات الاتصال / المصادقة
علامات الاتصال / المصادقة
device identity required→ سياق غير آمن أو مصادقة جهاز مفقودة.origin not allowed→ قيمةOriginفي المتصفح ليست ضمنgateway.controlUi.allowedOrigins(أو أنك تتصل من أصل متصفح غير loopback دون قائمة سماح صريحة).device nonce required/device nonce mismatch→ لا يكمل العميل تدفق مصادقة الجهاز المعتمد على التحدي (connect.challenge+device.nonce).device signature invalid/device signature expired→ وقع العميل حمولة خاطئة (أو طابعًا زمنيًا قديمًا) للمصافحة الحالية.AUTH_TOKEN_MISMATCHمعcanRetryWithDeviceToken=true→ يمكن للعميل إجراء إعادة محاولة موثوقة واحدة باستخدام رمز الجهاز المخزن مؤقتًا.- تعيد إعادة المحاولة باستخدام الرمز المخزن مؤقتًا استخدام مجموعة النطاقات المخزنة مع رمز الجهاز المقترن. يحتفظ مستدعو
deviceTokenالصريح /scopesالصريح بمجموعة النطاقات المطلوبة بدلًا من ذلك. AUTH_SCOPE_MISMATCH→ تم التعرف على رمز الجهاز، لكن نطاقاته المعتمدة لا تغطي طلب الاتصال هذا؛ أعد الاقتران أو وافق على عقد النطاق المطلوب بدلًا من تدوير رمز Gateway مشترك.- خارج مسار إعادة المحاولة هذا، تكون أولوية مصادقة الاتصال كالتالي: الرمز/كلمة المرور المشتركة الصريحة أولًا، ثم
deviceTokenالصريح، ثم رمز الجهاز المخزن، ثم رمز bootstrap. - في مسار واجهة التحكم غير المتزامن لـ Tailscale Serve، يتم تسلسل المحاولات الفاشلة لنفس
{scope, ip}قبل أن يسجل المحدد الفشل. لذلك يمكن أن تعرض محاولتا إعادة محاولة متزامنتان سيئتان من العميل نفسهretry laterفي المحاولة الثانية بدلًا من عدم تطابق عاديين. too many failed authentication attempts (retry later)من عميل loopback ذي أصل متصفح → تؤدي الإخفاقات المتكررة من قيمةOriginالمطبوعة نفسها إلى قفل مؤقت؛ يستخدم أصل localhost آخر حاوية منفصلة.- تكرار
unauthorizedبعد إعادة المحاولة تلك → انجراف الرمز المشترك/رمز الجهاز؛ حدث تكوين الرمز وأعد الموافقة/تدوير رمز الجهاز عند الحاجة. gateway connect failed:→ هدف مضيف/منفذ/عنوان URL خاطئ.
خريطة سريعة لأكواد تفاصيل المصادقة
استخدمerror.details.code من استجابة connect الفاشلة لاختيار الإجراء التالي:
| كود التفاصيل | المعنى | الإجراء الموصى به |
|---|---|---|
AUTH_TOKEN_MISSING | لم يرسل العميل رمزًا مشتركًا مطلوبًا. | الصق/عيّن الرمز في العميل وأعد المحاولة. لمسارات لوحة المعلومات: openclaw config get gateway.auth.token ثم الصقه في إعدادات واجهة التحكم. |
AUTH_TOKEN_MISMATCH | لم يطابق الرمز المشترك رمز مصادقة Gateway. | إذا كان canRetryWithDeviceToken=true، فاسمح بإعادة محاولة موثوقة واحدة. تعيد محاولات الرمز المخزن مؤقتًا استخدام النطاقات المعتمدة المخزنة؛ يحتفظ مستدعو deviceToken / scopes الصريحون بالنطاقات المطلوبة. إذا استمر الفشل، فشغل قائمة تحقق استرداد انجراف الرمز. |
AUTH_DEVICE_TOKEN_MISMATCH | رمز كل جهاز المخزن مؤقتًا قديم أو ملغى. | دوّر/أعد اعتماد رمز الجهاز باستخدام CLI الأجهزة، ثم أعد الاتصال. |
AUTH_SCOPE_MISMATCH | رمز الجهاز صالح، لكن دوره/نطاقاته المعتمدة لا تغطي طلب الاتصال هذا. | أعد إقران الجهاز أو وافق على عقد النطاق المطلوب؛ لا تعامل هذا كانجراف للرمز المشترك. |
PAIRING_REQUIRED | تحتاج هوية الجهاز إلى موافقة. تحقق من error.details.reason بحثًا عن not-paired أو scope-upgrade أو role-upgrade أو metadata-upgrade، واستخدم requestId / remediationHint عند وجودهما. | وافق على الطلب المعلق: openclaw devices list ثم openclaw devices approve <requestId>. تستخدم ترقيات النطاق/الدور التدفق نفسه بعد مراجعة الوصول المطلوب. |
ينبغي ألا تعتمد استدعاءات RPC الخلفية المباشرة عبر loopback، والمصادق عليها برمز/كلمة مرور Gateway المشتركة، على خط أساس نطاق الجهاز المقترن الخاص بـ CLI. إذا استمر فشل الوكلاء الفرعيين أو الاستدعاءات الداخلية الأخرى مع
scope-upgrade، فتحقق من أن المستدعي يستخدم client.id: "gateway-client" وclient.mode: "backend" ولا يفرض deviceIdentity صريحًا أو رمز جهاز.
إذا تم رفض
openclaw devices rotate / revoke / remove بشكل غير متوقع:
- يمكن لجلسات رمز الجهاز المقترن إدارة جهازها الخاص بها فقط ما لم يكن لدى المستدعي أيضًا
operator.admin - يمكن لـ
openclaw devices rotate --scope ...طلب نطاقات مشغل يحتفظ بها بالفعل المستدعي الحالي فقط
- التكوين (أوضاع مصادقة Gateway)
- واجهة التحكم
- الأجهزة
- الوصول عن بعد
- مصادقة الوكيل الموثوق
خدمة Gateway لا تعمل
استخدم هذا عندما تكون الخدمة مثبتة لكن العملية لا تبقى قيد التشغيل.Runtime: stoppedمع تلميحات الخروج.- عدم تطابق تكوين الخدمة (
Config (cli)مقابلConfig (service)). - تعارضات المنفذ/المستمع.
- تثبيتات launchd/systemd/schtasks إضافية عند استخدام
--deep. - تلميحات تنظيف
Other gateway-like services detected (best effort).
العلامات الشائعة
العلامات الشائعة
Gateway start blocked: set gateway.mode=localأوexisting config is missing gateway.mode→ وضع Gateway المحلي غير مفعّل، أو تمت الكتابة فوق ملف التكوين وفقدgateway.mode. الإصلاح: عيّنgateway.mode="local"في تكوينك، أو أعد تشغيلopenclaw onboard --mode local/openclaw setupلإعادة ختم تكوين الوضع المحلي المتوقع. إذا كنت تشغل OpenClaw عبر Podman، فإن مسار التكوين الافتراضي هو~/.openclaw/openclaw.json.refusing to bind gateway ... without auth→ ربط غير loopback دون مسار مصادقة Gateway صالح (رمز/كلمة مرور، أو وكيل موثوق حيث يكون مكونًا).another gateway instance is already listening/EADDRINUSE→ تعارض منفذ.Other gateway-like services detected (best effort)→ توجد وحدات launchd/systemd/schtasks قديمة أو موازية. ينبغي أن تحتفظ معظم الإعدادات بـ Gateway واحد لكل جهاز؛ إذا كنت تحتاج فعلًا إلى أكثر من واحد، فاعزل المنافذ + التكوين/الحالة/مساحة العمل. راجع /gateway#multiple-gateways-same-host.System-level OpenClaw gateway service detectedمن doctor → توجد وحدة systemd على مستوى النظام بينما خدمة مستوى المستخدم مفقودة. أزل التكرار أو عطله قبل السماح لـ doctor بتثبيت خدمة مستخدم، أو عيّنOPENCLAW_SERVICE_REPAIR_POLICY=externalإذا كانت وحدة النظام هي المشرف المقصود.Gateway service port does not match current gateway config→ لا يزال المشرف المثبت يثبت--portالقديم. شغلopenclaw doctor --fixأوopenclaw gateway install --force، ثم أعد تشغيل خدمة Gateway.
يتوقف Gateway على macOS عن الاستجابة بصمت، ثم يستأنف عندما تلمس لوحة المعلومات
استخدم هذا عندما تصبح القنوات (Telegram، WhatsApp، وما إلى ذلك) على مضيف macOS صامتة من دقائق إلى ساعات في كل مرة، ويبدو أن Gateway يعود في اللحظة التي تفتح فيها واجهة التحكم، أو تدخل عبر SSH، أو تتفاعل مع المضيف بطريقة أخرى. لا تظهر عادة أي أعراض واضحة فيopenclaw status لأنه بحلول الوقت الذي تنظر فيه يكون Gateway قد عاد للعمل.
- حزمة واحدة أو أكثر من حزم
*-uncaught_exception.jsonفي~/.openclaw/logs/stability/يكون فيهاerror.codeمضبوطًا على رمز شبكة عابر مثلENETDOWNأوENETUNREACHأوEHOSTUNREACHأوECONNREFUSED. - أسطر
pmset -g logمثلEntering Sleep state due to 'Maintenance Sleep'أوen0 driver is slow (msg: WillChangeState to 0)المتزامنة مع الطوابع الزمنية للانهيار. يضع Power Nap / سكون الصيانة مشغل Wi-Fi لفترة وجيزة في الحالة 0؛ وأيconnect()صادر يقع ضمن تلك النافذة قد يفشل معENETDOWNحتى على مضيف لديه اتصال كامل بالشبكة في الظروف الأخرى. - مخرجات
launchctl printالتي تعرضstate = not runningمع عدةrunsحديثة ورمز خروج، خصوصًا عندما تكون الفجوة بين الانهيار والتشغيل التالي في حدود ساعة بدلًا من ثوان. يطبق macOS launchd بوابة غير موثقة للحماية من إعادة التشغيل بعد سلسلة انهيارات، وقد تتوقف عن احترامKeepAlive=trueإلى أن يعيد تفعيلها محفز خارجي مثل تسجيل الدخول التفاعلي أو اتصال لوحة التحكم أوlaunchctl kickstart.
- حزمة استقرار يكون فيها
error.codeهوENETDOWNأو رمزًا شقيقًا، مع مكدس استدعاءات يشير إلى NodenetlookupAndConnect/Socket.connect. يصنف OpenClaw2026.5.26والإصدارات الأحدث هذه الأخطاء كأخطاء شبكة عابرة غير ضارة، بحيث لا تنتشر بعد الآن إلى معالج الاستثناءات غير الملتقطة على المستوى الأعلى؛ إذا كنت تستخدم إصدارًا أقدم، فحدّث أولًا. - فترات هدوء طويلة تنتهي فور اتصالك بواجهة Control UI أو دخولك إلى المضيف عبر SSH: النشاط المرئي للمستخدم هو ما يعيد تفعيل بوابة إعادة التشغيل في launchd، وليس أي شيء تفعله لوحة التحكم للـ Gateway.
- ازدياد عداد
runsخلال اليوم من دون سطر مقابلreceived SIG*; shutting downفي~/Library/Logs/openclaw/gateway.log: تسجل عمليات الإيقاف النظيفة إشارة؛ أما الانهيارات العابرة فلا تفعل.
-
حدّث الـ Gateway إذا كنت تشغل إصدارًا أقدم من
2026.5.26. بعد التحديث، ستسجل أخطاءENETDOWNالمستقبلية كتحذيرات بدلًا من إنهاء العملية. -
قلل نشاط سكون الصيانة على مضيفات Mac mini / أجهزة سطح المكتب المعدة للعمل كخوادم دائمة التشغيل:
يقلل هذا بشكل كبير، لكنه لا يزيل تمامًا، اضطراب المشغل الأساسي. لا يزال بإمكان النظام تنفيذ بعض حالات سكون الصيانة للحفاظ على TCP keepalive وصيانة mDNS بغض النظر عن هذه الرايات.
-
أضف مراقب liveness بحيث تُكتشف بسرعة أي سلسلة انهيارات مستقبلية يوقفها launchd:
الهدف هو إعادة تفعيل بوابة إعادة التشغيل خارجيًا؛
KeepAlive=trueوحده لا يكفي على macOS بعد سلسلة انهيارات.
خروج Gateway أثناء الاستخدام العالي للذاكرة
استخدم هذا عندما يختفي الـ Gateway تحت الحمل، أو يبلّغ المشرف عن إعادة تشغيل بنمط OOM، أو تذكر السجلاتcritical memory pressure bundle written.
Reason: diagnostic.memory.pressure.criticalفي أحدث حزمة استقرار.Memory pressure:معcritical/rss_thresholdأوcritical/heap_thresholdأوcritical/rss_growth.- قيم
V8 heap:القريبة من حد heap. - إدخالات
Largest session files:مثلagents/<agent>/sessions/<session>.jsonlأوsessions/<session>.jsonl. - عدادات ذاكرة cgroup في Linux عندما يعمل الـ Gateway داخل حاوية أو خدمة محدودة الذاكرة.
- يظهر
critical memory pressure bundle writtenقبل إعادة التشغيل بقليل → التقط OpenClaw حزمة استقرار قبل OOM. افحصها باستخدامopenclaw gateway stability --bundle latest. - يظهر
memory pressure: level=critical ... memoryPressureSnapshot=disabledفي سجلات Gateway → اكتشف OpenClaw ضغط ذاكرة حرجًا، لكن لقطة الاستقرار قبل OOM معطلة. - يشير
Largest session files:إلى مسار نص محادثة منقح كبير جدًا → قلل سجل الجلسات المحتفظ به، وافحص نمو الجلسات، أو انقل النصوص القديمة خارج المخزن النشط قبل إعادة التشغيل. - البايتات المستخدمة في
V8 heap:قريبة من حد heap → خفّض ضغط الموجه/الجلسة، أو قلل العمل المتزامن، أو ارفع حد heap في Node فقط بعد التأكد من أن عبء العمل متوقع. Memory pressure: critical/rss_growth→ نمت الذاكرة بسرعة داخل نافذة أخذ عينات واحدة. افحص أحدث السجلات بحثًا عن استيراد كبير، أو مخرجات أداة خارجة عن السيطرة، أو محاولات متكررة، أو دفعة من أعمال agent المنتظرة في الطابور.- يظهر ضغط ذاكرة حرج في السجلات لكن لا توجد حزمة → هذا هو الافتراضي. اضبط
diagnostics.memoryPressureSnapshot: trueلالتقاط حزمة الاستقرار قبل OOM في أحداث ضغط الذاكرة الحرجة المستقبلية.
رفض Gateway تهيئة غير صالحة
استخدم هذا عندما يفشل بدء تشغيل Gateway معInvalid config أو تقول سجلات إعادة التحميل الساخن
إنه تخطى تعديلًا غير صالح.
Invalid config at ...config reload skipped (invalid config): ...Config write rejected: ...- ملف
openclaw.json.rejected.*مؤرخ بجانب التهيئة النشطة - ملف
openclaw.json.clobbered.*مؤرخ إذا أصلحdoctor --fixتعديلًا مباشرًا معطوبًا - يحتفظ OpenClaw بأحدث 32 ملفًا من ملفات
.clobbered.*لكل مسار تهيئة ويدوّر الملفات الأقدم
What happened
What happened
- لم تجتز التهيئة التحقق أثناء بدء التشغيل أو إعادة التحميل الساخن أو كتابة يملكها OpenClaw.
- يفشل بدء تشغيل Gateway بشكل مغلق بدلًا من إعادة كتابة
openclaw.json. - تتخطى إعادة التحميل الساخن التعديلات الخارجية غير الصالحة وتبقي تهيئة وقت التشغيل الحالية نشطة.
- ترفض الكتابات التي يملكها OpenClaw الحمولات غير الصالحة/المتلفة قبل الالتزام وتحفظ
.rejected.*. - يملك
openclaw doctor --fixالإصلاح. يمكنه إزالة بادئات غير JSON أو استعادة آخر نسخة معروفة بأنها سليمة مع الحفاظ على الحمولة المرفوضة كـ.clobbered.*. - عندما تحدث إصلاحات كثيرة لمسار تهيئة واحد، يدوّر OpenClaw ملفات
.clobbered.*الأقدم بحيث تبقى أحدث حمولة جرى إصلاحها متاحة.
Inspect and repair
Inspect and repair
Common signatures
Common signatures
- وجود
.clobbered.*→ احتفظ doctor بتعديل خارجي معطوب أثناء إصلاح التهيئة النشطة. - وجود
.rejected.*→ فشلت كتابة تهيئة يملكها OpenClaw في فحوصات المخطط أو clobber قبل الالتزام. Config write rejected:→ حاولت الكتابة إسقاط الشكل المطلوب، أو تقليص الملف بشدة، أو حفظ تهيئة غير صالحة.config reload skipped (invalid config):→ فشل تعديل مباشر في التحقق وتم تجاهله من Gateway العامل.Invalid config at ...→ فشل بدء التشغيل قبل إقلاع خدمات Gateway.missing-meta-vs-last-goodأوgateway-mode-missing-vs-last-goodأوsize-drop-vs-last-good:*→ رُفضت كتابة يملكها OpenClaw لأنها فقدت حقولًا أو حجمًا مقارنة بالنسخة الاحتياطية الأخيرة المعروفة بأنها سليمة.Config last-known-good promotion skipped→ احتوى المرشح على عناصر نائبة منقحة للأسرار مثل***.
Fix options
Fix options
- شغّل
openclaw doctor --fixللسماح لـ doctor بإصلاح تهيئة ذات بادئة/متلفة أو استعادة آخر نسخة معروفة بأنها سليمة. - انسخ فقط المفاتيح المقصودة من
.clobbered.*أو.rejected.*، ثم طبقها باستخدامopenclaw config setأوconfig.patch. - شغّل
openclaw config validateقبل إعادة التشغيل. - إذا عدّلت يدويًا، فاحتفظ بتهيئة JSON5 الكاملة، وليس فقط الكائن الجزئي الذي أردت تغييره.
تحذيرات فحص Gateway
استخدم هذا عندما يصلopenclaw gateway probe إلى شيء ما، لكنه لا يزال يطبع كتلة تحذير.
warnings[].codeوprimaryTargetIdفي مخرجات JSON.- ما إذا كان التحذير متعلقًا بالرجوع إلى SSH، أو تعدد الـ gateways، أو نقص النطاقات، أو مراجع مصادقة غير محلولة.
SSH tunnel failed to start; falling back to direct probes.→ فشل إعداد SSH، لكن الأمر لا يزال يحاول الأهداف المباشرة المهيأة/أهداف الاسترجاع المحلي.multiple reachable gateway identities detected→ أجابت gateways مميزة، أو لم يتمكن OpenClaw من إثبات أن الأهداف القابلة للوصول هي Gateway نفسه. يُعامل نفق SSH أو عنوان URL وكيل أو عنوان URL بعيد مهيأ إلى Gateway نفسه كـ Gateway واحد بعدة وسائل نقل، حتى عندما تختلف منافذ النقل.Read-probe diagnostics are limited by gateway scopes (missing operator.read)→ نجح الاتصال، لكن RPC التفصيلي محدود بالنطاق؛ اقرن هوية الجهاز أو استخدم بيانات اعتماد تتضمنoperator.read.Gateway accepted the WebSocket connection, but follow-up read diagnostics failed→ نجح الاتصال، لكن مجموعة RPC التشخيصية الكاملة انتهت مهلتها أو فشلت. تعامل مع هذا كـ Gateway قابل للوصول مع تشخيصات متدهورة؛ قارنconnect.okوconnect.rpcOkفي مخرجات--json.Capability: pairing-pendingأوgateway closed (1008): pairing required→ أجاب الـ Gateway، لكن هذا العميل لا يزال يحتاج إلى الاقتران/الموافقة قبل وصول المشغل العادي.- نص تحذير SecretRef غير محلول لـ
gateway.auth.*/gateway.remote.*→ لم تكن مادة المصادقة متاحة في مسار الأمر هذا للهدف الفاشل.
القناة متصلة، لكن الرسائل لا تتدفق
إذا كانت حالة القناة متصلة لكن تدفق الرسائل متوقف، فركز على السياسة والأذونات وقواعد التسليم الخاصة بالقناة.- سياسة الرسائل الخاصة DM (
pairing،allowlist،open،disabled). - قائمة السماح للمجموعات ومتطلبات الإشارة.
- أذونات/نطاقات API القناة المفقودة.
mention required→ تم تجاهل الرسالة بسبب سياسة الإشارة في المجموعة.- آثار
pairing/ الموافقة المعلقة → المرسل غير معتمد. missing_scope،not_in_channel،Forbidden،401/403→ مشكلة في مصادقة/أذونات القناة.
تسليم Cron و Heartbeat
إذا لم يعمل cron أو heartbeat أو لم يتم التسليم، فتحقق أولًا من حالة المجدول، ثم هدف التسليم.- تفعيل Cron ووجود موعد التنبيه التالي.
- حالة سجل تشغيل المهمة (
ok،skipped،error). - أسباب تخطي Heartbeat (
quiet-hours،requests-in-flight،cron-in-progress،lanes-busy،alerts-disabled،empty-heartbeat-file،no-tasks-due).
التواقيع الشائعة
التواقيع الشائعة
cron: scheduler disabled; jobs will not run automatically→ Cron معطل.cron: timer tick failed→ فشل نبض مؤقت المجدول؛ تحقق من أخطاء الملف/السجل/وقت التشغيل.heartbeat skippedمعreason=quiet-hours→ خارج نافذة ساعات النشاط.heartbeat skippedمعreason=empty-heartbeat-file→ الملفHEARTBEAT.mdموجود لكنه لا يحتوي إلا على فراغات أو تعليق أو ترويسة أو سياج أو هيكل قائمة تحقق فارغة، لذلك يتخطى OpenClaw استدعاء النموذج.heartbeat skippedمعreason=no-tasks-due→ يحتويHEARTBEAT.mdعلى كتلةtasks:، لكن لا توجد أي مهام مستحقة في هذه النبضة.heartbeat: unknown accountId→ معرف حساب غير صالح لهدف تسليم Heartbeat.heartbeat skippedمعreason=dm-blocked→ تم حل هدف Heartbeat إلى وجهة بأسلوب الرسائل المباشرة بينما تم ضبطagents.defaults.heartbeat.directPolicy(أو التجاوز لكل وكيل) علىblock.
Node مقترن، والأداة تفشل
إذا كان Node مقترنًا لكن الأدوات تفشل، فاعزل حالة الواجهة الأمامية والأذونات والموافقة.- أن يكون Node متصلًا بالإنترنت مع الإمكانات المتوقعة.
- منح أذونات نظام التشغيل للكاميرا/الميكروفون/الموقع/الشاشة.
- موافقات التنفيذ وحالة قائمة السماح.
NODE_BACKGROUND_UNAVAILABLE→ يجب أن يكون تطبيق Node في الواجهة الأمامية.*_PERMISSION_REQUIRED/LOCATION_PERMISSION_REQUIRED→ إذن نظام تشغيل مفقود.SYSTEM_RUN_DENIED: approval required→ موافقة التنفيذ معلقة.SYSTEM_RUN_DENIED: allowlist miss→ الأمر محظور بواسطة قائمة السماح.
فشل أداة المتصفح
استخدم هذا عندما تفشل إجراءات أداة المتصفح رغم أن Gateway نفسه سليم.- ما إذا كان
plugins.allowمضبوطًا ويتضمنbrowser. - مسار ملف المتصفح التنفيذي صالحًا.
- إمكانية الوصول إلى ملف تعريف CDP.
- توفر Chrome محليًا لملفات تعريف
existing-session/user.
تواقيع Plugin / الملف التنفيذي
تواقيع Plugin / الملف التنفيذي
unknown command "browser"أوunknown command 'browser'→ تم استبعاد Plugin المتصفح المضمن بواسطةplugins.allow.- أداة المتصفح مفقودة / غير متاحة بينما
browser.enabled=true→ يستبعدplugins.allowقيمةbrowser، لذلك لم يتم تحميل Plugin مطلقًا. Failed to start Chrome CDP on port→ فشل تشغيل عملية المتصفح.browser.executablePath not found→ المسار المكوّن غير صالح.browser.cdpUrl must be http(s) or ws(s)→ يستخدم عنوان URL المكوّن لـ CDP مخططًا غير مدعوم مثلfile:أوftp:.browser.cdpUrl has invalid port→ يحتوي عنوان URL المكوّن لـ CDP على منفذ سيئ أو خارج النطاق.Playwright is not available in this gateway build; '<feature>' is unsupported.→ تثبيت Gateway الحالي يفتقد تبعية وقت تشغيل المتصفح الأساسية؛ أعد تثبيت OpenClaw أو حدّثه، ثم أعد تشغيل Gateway. لا تزال لقطات ARIA ولقطات الصفحة الأساسية تعمل، لكن التنقل ولقطات الذكاء الاصطناعي ولقطات عناصر محددات CSS وتصدير PDF تبقى غير متاحة.
تواقيع Chrome MCP / الجلسة الحالية
تواقيع Chrome MCP / الجلسة الحالية
Could not find DevToolsActivePort for chrome→ تعذر على Chrome MCP في الجلسة الحالية الارتباط بدليل بيانات المتصفح المحدد بعد. افتح صفحة فحص المتصفح، وفعّل التصحيح عن بعد، وأبقِ المتصفح مفتوحًا، ووافق على مطالبة الارتباط الأولى، ثم أعد المحاولة. إذا لم تكن حالة تسجيل الدخول مطلوبة، ففضّل ملف التعريف المُدارopenclaw.No Chrome tabs found for profile="user"→ لا يحتوي ملف تعريف الارتباط في Chrome MCP على أي ألسنة Chrome محلية مفتوحة.Remote CDP for profile "<name>" is not reachable→ لا يمكن الوصول إلى نقطة نهاية CDP البعيدة المكوّنة من مضيف Gateway.Browser attachOnly is enabled ... not reachableأوBrowser attachOnly is enabled and CDP websocket ... is not reachable→ لا يحتوي ملف تعريف الارتباط فقط على هدف قابل للوصول، أو أن نقطة نهاية HTTP أجابت لكن تعذر فتح CDP WebSocket مع ذلك.
تواقيع العنصر / لقطة الشاشة / الرفع
تواقيع العنصر / لقطة الشاشة / الرفع
fullPage is not supported for element screenshots→ مزج طلب لقطة الشاشة--full-pageمع--refأو--element.element screenshots are not supported for existing-session profiles; use ref from snapshot.→ يجب أن تستخدم استدعاءات لقطات شاشة Chrome MCP /existing-sessionالتقاط الصفحة أو--refمن لقطة، وليس CSS--element.existing-session file uploads do not support element selectors; use ref/inputRef.→ تحتاج خطافات الرفع في Chrome MCP إلى مراجع لقطات، وليس محددات CSS.existing-session file uploads currently support one file at a time.→ أرسل ملفًا واحدًا في كل استدعاء على ملفات تعريف Chrome MCP.existing-session dialog handling does not support timeoutMs.→ لا تدعم خطافات مربعات الحوار على ملفات تعريف Chrome MCP تجاوزات المهلة.existing-session type does not support timeoutMs overrides.→ احذفtimeoutMsمنact:typeعلى ملفات تعريفprofile="user"/ جلسات Chrome MCP الحالية، أو استخدم ملف تعريف متصفح مُدار/CDP عندما تكون مهلة مخصصة مطلوبة.existing-session evaluate does not support timeoutMs overrides.→ احذفtimeoutMsمنact:evaluateعلى ملفات تعريفprofile="user"/ جلسات Chrome MCP الحالية، أو استخدم ملف تعريف متصفح مُدار/CDP عندما تكون مهلة مخصصة مطلوبة.response body is not supported for existing-session profiles yet.→ لا يزالresponsebodyيتطلب متصفحًا مُدارًا أو ملف تعريف CDP خامًا.- تجاوزات منفذ العرض / الوضع الداكن / اللغة المحلية / عدم الاتصال القديمة على ملفات تعريف الارتباط فقط أو CDP البعيد → شغّل
openclaw browser stop --browser-profile <name>لإغلاق جلسة التحكم النشطة وتحرير حالة محاكاة Playwright/CDP دون إعادة تشغيل Gateway بالكامل.
إذا أجريت ترقية وتعطل شيء فجأة
معظم الأعطال بعد الترقية تكون بسبب انجراف التكوين أو فرض افتراضيات أكثر صرامة الآن.1. تغير سلوك المصادقة وتجاوز عنوان URL
1. تغير سلوك المصادقة وتجاوز عنوان URL
- إذا كان
gateway.mode=remote، فقد تستهدف استدعاءات CLI الخدمة البعيدة بينما تكون خدمتك المحلية سليمة. - استدعاءات
--urlالصريحة لا تعود إلى بيانات الاعتماد المخزنة.
gateway connect failed:→ هدف عنوان URL خاطئ.unauthorized→ نقطة النهاية قابلة للوصول لكن المصادقة خاطئة.
2. أصبحت ضوابط الربط والمصادقة أكثر صرامة
2. أصبحت ضوابط الربط والمصادقة أكثر صرامة
- تحتاج عمليات الربط غير المحلية (
lan،tailnet،custom) إلى مسار مصادقة Gateway صالح: مصادقة الرمز/كلمة المرور المشتركة، أو نشرtrusted-proxyغير محلي مكوّن بشكل صحيح. - المفاتيح القديمة مثل
gateway.tokenلا تستبدلgateway.auth.token.
refusing to bind gateway ... without auth→ ربط غير محلي دون مسار مصادقة Gateway صالح.Connectivity probe: failedبينما وقت التشغيل يعمل → Gateway حي لكنه غير قابل للوصول باستخدام المصادقة/عنوان URL الحاليين.
3. تغيرت حالة الاقتران وهوية الجهاز
3. تغيرت حالة الاقتران وهوية الجهاز
- موافقات الأجهزة المعلقة للوحة التحكم/Nodes.
- موافقات اقتران الرسائل المباشرة المعلقة بعد تغييرات السياسة أو الهوية.
device identity required→ لم يتم استيفاء مصادقة الجهاز.pairing required→ يجب الموافقة على المرسل/الجهاز.