استكشاف أخطاء Gateway
هذه الصفحة هي دليل التشغيل العميق. ابدأ من /help/troubleshooting إذا كنت تريد تدفق الفرز السريع أولًا.سلم الأوامر
شغّل هذه الأوامر أولًا، بهذا الترتيب:- يعرض
openclaw gateway statusالقيمتينRuntime: runningوRPC probe: ok. - يبلّغ
openclaw doctorعن عدم وجود مشكلات حظر في التكوين/الخدمة. - يعرض
openclaw channels status --probeحالة النقل المباشرة لكل حساب، وعند الدعم، نتائج probe/audit مثلworksأوaudit ok.
Anthropic 429 extra usage required for long context
استخدم هذا عندما تتضمن السجلات/الأخطاء:HTTP 429: rate_limit_error: Extra usage is required for long context requests.
- أن نموذج Anthropic Opus/Sonnet المحدد يحتوي على
params.context1m: true. - أن بيانات اعتماد Anthropic الحالية غير مؤهلة لاستخدام السياق الطويل.
- أن الطلبات تفشل فقط على الجلسات الطويلة/تشغيلات النماذج التي تحتاج إلى مسار 1M beta.
- عطّل
context1mلذلك النموذج للرجوع إلى نافذة السياق العادية. - استخدم مفتاح Anthropic API مع الفوترة، أو فعّل Anthropic Extra Usage على حساب Anthropic OAuth/الاشتراك.
- اضبط نماذج fallback بحيث تستمر التشغيلات عندما تُرفض طلبات Anthropic ذات السياق الطويل.
- /providers/anthropic
- /reference/token-use
- /help/faq#why-am-i-seeing-http-429-ratelimiterror-from-anthropic
لا توجد ردود
إذا كانت القنوات تعمل لكن لا شيء يجيب، فتحقق من التوجيه والسياسة قبل إعادة توصيل أي شيء.- pairing معلّق لمرسلي الرسائل المباشرة.
- تقييد الإشارة في المجموعات (
requireMention,mentionPatterns). - عدم تطابق قوائم السماح للقناة/المجموعة.
drop guild message (mention required→ تم تجاهل رسالة المجموعة حتى حدوث إشارة.pairing request→ يحتاج المرسل إلى موافقة.blocked/allowlist→ تمت تصفية المرسل/القناة بواسطة السياسة.
اتصال dashboard control ui
عندما لا يتمكن dashboard/control UI من الاتصال، تحقّق من عنوان URL ووضع المصادقة وافتراضات السياق الآمن.- عنوان probe الصحيح وعنوان dashboard الصحيح.
- عدم تطابق وضع المصادقة/الرمز بين العميل وgateway.
- استخدام HTTP عندما تكون هوية الجهاز مطلوبة.
device identity required→ سياق غير آمن أو مصادقة جهاز مفقودة.origin not allowed→ قيمةOriginفي المتصفح ليست ضمنgateway.controlUi.allowedOrigins(أو أنك تتصل منOriginمتصفح غير loopback بدون قائمة سماح صريحة).device nonce required/device nonce mismatch→ العميل لا يُكمل تدفق مصادقة الجهاز القائم على التحدي (connect.challenge+device.nonce).device signature invalid/device signature expired→ وقّع العميل حمولة خاطئة (أو بطابع زمني قديم) لعملية المصافحة الحالية.AUTH_TOKEN_MISMATCHمعcanRetryWithDeviceToken=true→ يمكن للعميل إجراء إعادة محاولة موثوقة واحدة باستخدام رمز جهاز مخزن مؤقتًا.- تعيد إعادة المحاولة باستخدام الرمز المخزن مؤقتًا استخدام مجموعة النطاقات المخزنة مع
رمز الجهاز المقترن. أما المستدعون الصريحون لـ
deviceToken/scopesفيحتفظون بمجموعة النطاقات المطلوبة الخاصة بهم. - خارج مسار إعادة المحاولة هذا، تكون أولوية مصادقة الاتصال هي
الرمز/كلمة المرور المشتركة الصريحة أولًا، ثم
deviceTokenالصريح، ثم رمز الجهاز المخزن، ثم رمز bootstrap. - في مسار Control UI غير المتزامن عبر 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 | لم يرسل العميل رمزًا مشتركًا مطلوبًا. | الصق/اضبط الرمز في العميل ثم أعد المحاولة. بالنسبة إلى مسارات dashboard: شغّل openclaw config get gateway.auth.token ثم الصقه في إعدادات Control UI. |
AUTH_TOKEN_MISMATCH | لم يطابق الرمز المشترك رمز مصادقة gateway. | إذا كانت canRetryWithDeviceToken=true، اسمح بإعادة محاولة موثوقة واحدة. تعيد محاولات الرمز المخزن مؤقتًا استخدام النطاقات الموافق عليها المخزنة؛ أما مستدعو deviceToken / scopes الصريحون فيحتفظون بالنطاقات المطلوبة. إذا استمر الفشل، شغّل قائمة التحقق من استعادة انحراف الرمز. |
AUTH_DEVICE_TOKEN_MISMATCH | رمز كل جهاز المخزن مؤقتًا قديم أو تم إلغاؤه. | دوّر/أعد الموافقة على رمز الجهاز باستخدام CLI الخاص بـ devices، ثم أعد الاتصال. |
PAIRING_REQUIRED | هوية الجهاز معروفة لكنها غير موافق عليها لهذا الدور. | وافق على الطلب المعلّق: openclaw devices list ثم openclaw devices approve <requestId>. |
- ينتظر
connect.challenge - يوقّع الحمولة المرتبطة بالتحدي
- يرسل
connect.params.device.nonceمع nonce التحدي نفسها
openclaw devices rotate / revoke / remove بشكل غير متوقع:
- يمكن لجلسات الرموز الخاصة بالأجهزة المقترنة إدارة أجهزتها الخاصة فقط ما لم يكن
لدى المستدعي أيضًا
operator.admin - لا يستطيع
openclaw devices rotate --scope ...طلب نطاقات operator إلا إذا كانت جلسة المستدعي تملكها بالفعل
- /web/control-ui
- /gateway/configuration (أوضاع مصادقة gateway)
- /gateway/trusted-proxy-auth
- /gateway/remote
- /cli/devices
خدمة 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 صالح (رمز/كلمة مرور، أو trusted-proxy عند تكوينه).another gateway instance is already listening/EADDRINUSE→ تعارض منفذ.Other gateway-like services detected (best effort)→ توجد وحدات launchd/systemd/schtasks قديمة أو متوازية. يجب أن تحتفظ معظم الإعدادات بـ gateway واحدة لكل جهاز؛ وإذا كنت تحتاج بالفعل إلى أكثر من واحدة، فاعزل المنافذ + التكوين/الحالة/مساحة العمل. راجع /gateway#multiple-gateways-same-host.
تحذيرات Gateway probe
استخدم هذا عندما يصلopenclaw gateway probe إلى شيء ما، لكنه ما يزال يطبع كتلة تحذير.
warnings[].codeوprimaryTargetIdفي إخراج JSON.- ما إذا كان التحذير يتعلق برجوع SSH الاحتياطي، أو تعدد gateways، أو النطاقات المفقودة، أو مراجع المصادقة غير المحلولة.
SSH tunnel failed to start; falling back to direct probes.→ فشل إعداد SSH، لكن الأمر ما زال يحاول الأهداف المباشرة المكوّنة/loopback.multiple reachable gateways detected→ استجاب أكثر من هدف. يعني هذا عادةً إعدادًا مقصودًا متعدد gateways أو مستمعين قدامى/مكررين.Probe diagnostics are limited by gateway scopes (missing operator.read)→ نجح الاتصال، لكن تفاصيل RPC محدودة بالنطاق؛ قم بربط هوية الجهاز أو استخدم بيانات اعتماد تملكoperator.read.- نص تحذير SecretRef غير المحلولة لـ
gateway.auth.*/gateway.remote.*→ لم تكن مادة المصادقة متاحة في مسار هذا الأمر للهدف الفاشل.
القناة متصلة لكن الرسائل لا تتدفق
إذا كانت حالة القناة متصلة لكن تدفق الرسائل ميتًا، فركز على السياسة والأذونات وقواعد التسليم الخاصة بالقناة.- سياسة الرسائل المباشرة (
pairing,allowlist,open,disabled). - قائمة سماح المجموعات ومتطلبات الإشارة.
- أذونات/نطاقات API الخاصة بالقناة المفقودة.
mention required→ تم تجاهل الرسالة بسبب سياسة الإشارة في المجموعة.- آثار
pairing/ الموافقة المعلّقة → المرسل غير موافق عليه. missing_scope,not_in_channel,Forbidden,401/403→ مشكلة في مصادقة/أذونات القناة.
تسليم Cron وheartbeat
إذا لم تعمل cron أو heartbeat أو لم تسلّما، فتحقق من حالة المجدول أولًا، ثم من هدف التسليم.- أن cron مفعلة وأن wake التالية موجودة.
- حالة سجل تشغيل المهمة (
ok,skipped,error). - أسباب تخطي heartbeat (
quiet-hours,requests-in-flight,alerts-disabled,empty-heartbeat-file,no-tasks-due).
cron: scheduler disabled; jobs will not run automatically→ cron معطلة.cron: timer tick failed→ فشل tick للمجدول؛ تحقق من أخطاء الملف/السجل/وقت التشغيل.heartbeat skippedمعreason=quiet-hours→ خارج نافذة الساعات النشطة.heartbeat skippedمعreason=empty-heartbeat-file→ يوجدHEARTBEAT.mdلكنه يحتوي فقط على أسطر فارغة / عناوين markdown، لذلك يتخطى OpenClaw استدعاء النموذج.heartbeat skippedمعreason=no-tasks-due→ يحتويHEARTBEAT.mdعلى كتلةtasks:، لكن لا توجد أي مهام مستحقة في هذه tick.heartbeat: unknown accountId→ معرّف حساب غير صالح لهدف تسليم heartbeat.heartbeat skippedمعreason=dm-blocked→ تم حل هدف heartbeat إلى وجهة بنمط الرسائل المباشرة بينما تم ضبطagents.defaults.heartbeat.directPolicy(أو التجاوز لكل وكيل) علىblock.
فشل أداة عقدة مقترنة
إذا كانت العقدة مقترنة لكن الأدوات تفشل، فاعزل حالة الواجهة الأمامية، والأذونات، والموافقة.- أن العقدة متصلة بالإمكانات المتوقعة.
- منح أذونات نظام التشغيل للكاميرا/الميكروفون/الموقع/الشاشة.
- حالة موافقات exec وقائمة السماح.
NODE_BACKGROUND_UNAVAILABLE→ يجب أن يكون تطبيق العقدة في الواجهة الأمامية.*_PERMISSION_REQUIRED/LOCATION_PERMISSION_REQUIRED→ إذن نظام تشغيل مفقود.SYSTEM_RUN_DENIED: approval required→ موافقة exec معلّقة.SYSTEM_RUN_DENIED: allowlist miss→ تم حظر الأمر بواسطة قائمة السماح.
فشل أداة Browser
استخدم هذا عندما تفشل إجراءات أداة Browser حتى مع سلامة gateway نفسها.- ما إذا كان
plugins.allowمضبوطًا ويتضمنbrowser. - صحة مسار الملف التنفيذي للمتصفح.
- إمكانية الوصول إلى ملف CDP الشخصي.
- توفر Chrome المحلي لملفات
existing-session/user.
unknown command "browser"أوunknown command 'browser'→ تم استبعاد plugin المتصفح المضمّنة بواسطةplugins.allow.- غياب/تعذر توفر أداة browser مع
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)→ يستخدم عنوان CDP URL المكوّن مخططًا غير مدعوم مثلfile:أوftp:.browser.cdpUrl has invalid port→ يحتوي عنوان CDP URL المكوّن على منفذ سيئ أو خارج النطاق.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→ لا يحتوي ملف attach-only على هدف يمكن الوصول إليه، أو أن نقطة نهاية HTTP استجابت لكن تعذّر مع ذلك فتح WebSocket الخاصة بـ CDP.Playwright is not available in this gateway build; '<feature>' is unsupported.→ يفتقر تثبيت gateway الحالي إلى حزمة Playwright الكاملة؛ لا تزال لقطات ARIA ولقطات الشاشة الأساسية للصفحة ممكنة، لكن التنقل ولقطات AI ولقطات العناصر عبر محدد CSS وتصدير PDF تبقى غير متاحة.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من snapshot، وليس CSS--element.existing-session file uploads do not support element selectors; use ref/inputRef.→ تحتاج hooks رفع Chrome MCP إلى مراجع snapshot، وليس محددات CSS.existing-session file uploads currently support one file at a time.→ أرسل عملية رفع واحدة لكل استدعاء في ملفات Chrome MCP.existing-session dialog handling does not support timeoutMs.→ لا تدعم hooks الحوارات في ملفات Chrome MCP تجاوزات المهلة.response body is not supported for existing-session profiles yet.→ لا تزالresponsebodyتتطلب متصفحًا مُدارًا أو ملف CDP خامًا.- تجاوزات viewport / الوضع الداكن / locale / عدم الاتصال القديمة على ملفات attach-only أو CDP البعيدة → شغّل
openclaw browser stop --browser-profile <name>لإغلاق جلسة التحكم النشطة وتحرير حالة محاكاة Playwright/CDP من دون إعادة تشغيل gateway بالكامل.
إذا قمت بالترقية وانكسر شيء فجأة
يكون معظم العطل بعد الترقية ناتجًا عن انحراف التكوين أو فرض إعدادات افتراضية أشد صرامة الآن.1) تغيّر سلوك المصادقة وتجاوز URL
- إذا كانت
gateway.mode=remote، فقد تستهدف استدعاءات CLI هدفًا بعيدًا بينما تكون خدمتك المحلية سليمة. - لا تعود استدعاءات
--urlالصريحة إلى بيانات الاعتماد المخزنة.
gateway connect failed:→ هدف URL خاطئ.unauthorized→ يمكن الوصول إلى نقطة النهاية لكن المصادقة خاطئة.
2) أصبحت ضوابط bind والمصادقة أشد صرامة
- تحتاج الروابط غير loopback (
lan,tailnet,custom) إلى مسار مصادقة gateway صالح: مصادقة رمز/كلمة مرور مشتركة، أو نشرtrusted-proxyغير loopback ومكوّن بشكل صحيح. - المفاتيح القديمة مثل
gateway.tokenلا تحل محلgateway.auth.token.
refusing to bind gateway ... without auth→ ربط غير loopback من دون مسار مصادقة gateway صالح.RPC probe: failedبينما وقت التشغيل يعمل → gateway حية لكن لا يمكن الوصول إليها باستخدام المصادقة/URL الحالية.
3) تغيّرت حالة pairing وهوية الجهاز
- موافقات الأجهزة المعلّقة لـ dashboard/nodes.
- موافقات pairing المعلّقة للرسائل المباشرة بعد تغييرات السياسة أو الهوية.
device identity required→ لم تتحقق مصادقة الجهاز.pairing required→ يجب الموافقة على المرسل/الجهاز.