Pemecahan masalah Gateway
Halaman ini adalah runbook mendalam. Mulai dari /help/troubleshooting jika Anda ingin alur triase cepat terlebih dahulu.Tingkatan perintah
Jalankan ini terlebih dahulu, dalam urutan berikut:openclaw gateway statusmenampilkanRuntime: runningdanRPC probe: ok.openclaw doctormelaporkan tidak ada masalah config/layanan yang memblokir.openclaw channels status --probemenampilkan status transport per akun secara live dan, jika didukung, hasil probe/audit sepertiworksatauaudit ok.
Anthropic 429 extra usage required for long context
Gunakan ini saat log/error mencakup:HTTP 429: rate_limit_error: Extra usage is required for long context requests.
- Model Anthropic Opus/Sonnet yang dipilih memiliki
params.context1m: true. - Kredensial Anthropic saat ini tidak memenuhi syarat untuk penggunaan konteks panjang.
- Permintaan gagal hanya pada sesi panjang/eksekusi model yang memerlukan jalur beta 1M.
- Nonaktifkan
context1muntuk model tersebut agar kembali ke jendela konteks normal. - Gunakan kredensial Anthropic yang memenuhi syarat untuk permintaan konteks panjang, atau beralih ke Anthropic API key.
- Konfigurasikan model fallback agar eksekusi tetap berlanjut saat permintaan konteks panjang Anthropic ditolak.
- /providers/anthropic
- /reference/token-use
- /help/faq#why-am-i-seeing-http-429-ratelimiterror-from-anthropic
Backend lokal yang kompatibel dengan OpenAI lolos probe langsung tetapi eksekusi agen gagal
Gunakan ini saat:curl ... /v1/modelsberfungsi- pemanggilan langsung kecil ke
/v1/chat/completionsberfungsi - eksekusi model OpenClaw gagal hanya pada giliran agen normal
- pemanggilan langsung kecil berhasil, tetapi eksekusi OpenClaw gagal hanya pada prompt yang lebih besar
- error backend tentang
messages[].contentyang mengharapkan string - crash backend yang hanya muncul pada jumlah token prompt yang lebih besar atau prompt runtime agen penuh
messages[...].content: invalid type: sequence, expected a string→ backend menolak bagian konten Chat Completions terstruktur. Perbaikan: aturmodels.providers.<provider>.models[].compat.requiresStringContent: true.- permintaan langsung kecil berhasil, tetapi eksekusi agen OpenClaw gagal dengan crash backend/model
(misalnya Gemma pada beberapa build
inferrs) → transport OpenClaw kemungkinan sudah benar; backend gagal pada bentuk prompt runtime agen yang lebih besar. - kegagalan berkurang setelah tools dinonaktifkan tetapi tidak hilang → schema tool memang menjadi bagian dari tekanan, tetapi masalah yang tersisa tetap merupakan keterbatasan model/server upstream atau bug backend.
- Atur
compat.requiresStringContent: trueuntuk backend Chat Completions yang hanya menerima string. - Atur
compat.supportsTools: falseuntuk model/backend yang tidak dapat menangani permukaan schema tool OpenClaw secara andal. - Kurangi tekanan prompt bila memungkinkan: bootstrap workspace yang lebih kecil, riwayat sesi yang lebih pendek, model lokal yang lebih ringan, atau backend dengan dukungan konteks panjang yang lebih kuat.
- Jika permintaan langsung kecil terus berhasil sementara giliran agen OpenClaw masih crash di dalam backend, anggap ini sebagai keterbatasan server/model upstream dan ajukan repro di sana dengan bentuk payload yang diterima.
- /gateway/local-models
- /gateway/configuration
- /gateway/configuration-reference#openai-compatible-endpoints
Tidak ada balasan
Jika channel aktif tetapi tidak ada yang membalas, periksa routing dan kebijakan sebelum menyambungkan ulang apa pun.- Pairing tertunda untuk pengirim DM.
- Pengaturan mention grup (
requireMention,mentionPatterns). - Ketidakcocokan allowlist channel/grup.
drop guild message (mention required→ pesan grup diabaikan sampai ada mention.pairing request→ pengirim memerlukan persetujuan.blocked/allowlist→ pengirim/channel difilter oleh kebijakan.
Konektivitas dashboard control ui
Saat dashboard/control UI tidak dapat terhubung, validasi URL, mode auth, dan asumsi secure context.- URL probe dan URL dashboard sudah benar.
- Ketidakcocokan mode auth/token antara klien dan gateway.
- Penggunaan HTTP saat identitas perangkat diperlukan.
device identity required→ konteks tidak aman atau auth perangkat tidak ada.origin not allowed→Originbrowser tidak ada digateway.controlUi.allowedOrigins(atau Anda terhubung dari origin browser non-loopback tanpa allowlist eksplisit).device nonce required/device nonce mismatch→ klien tidak menyelesaikan alur auth perangkat berbasis challenge (connect.challenge+device.nonce).device signature invalid/device signature expired→ klien menandatangani payload yang salah (atau timestamp basi) untuk handshake saat ini.AUTH_TOKEN_MISMATCHdengancanRetryWithDeviceToken=true→ klien dapat melakukan satu kali retry tepercaya dengan token perangkat yang di-cache.- Retry token cache itu menggunakan kembali kumpulan scope yang di-cache dan disimpan bersama
token perangkat yang telah dipasangkan. Pemanggil
deviceTokeneksplisit /scopeseksplisit mempertahankan kumpulan scope yang diminta. - Di luar jalur retry itu, prioritas auth connect bersifat eksplisit:
shared token/password terlebih dahulu, lalu
deviceTokeneksplisit, lalu token perangkat tersimpan, lalu bootstrap token. - Pada jalur async Tailscale Serve Control UI, upaya gagal untuk
{scope, ip}yang sama diserialkan sebelum limiter mencatat kegagalan. Oleh karena itu, dua retry bersamaan yang buruk dari klien yang sama dapat menampilkanretry laterpada percobaan kedua alih-alih dua ketidakcocokan biasa. too many failed authentication attempts (retry later)dari klien loopback browser-origin → kegagalan berulang dariOriginternormalisasi yang sama dikunci sementara; origin localhost lain menggunakan bucket terpisah.unauthorizedberulang setelah retry tersebut → shared token/device token berubah; segarkan config token dan setujui ulang/rotasi token perangkat bila perlu.gateway connect failed:→ target host/port/url salah.
Peta cepat kode detail auth
Gunakanerror.details.code dari respons connect yang gagal untuk memilih tindakan berikutnya:
| Kode detail | Arti | Tindakan yang direkomendasikan |
|---|---|---|
AUTH_TOKEN_MISSING | Klien tidak mengirim shared token yang diperlukan. | Tempel/atur token di klien lalu coba lagi. Untuk jalur dashboard: openclaw config get gateway.auth.token lalu tempel ke pengaturan Control UI. |
AUTH_TOKEN_MISMATCH | Shared token tidak cocok dengan token auth gateway. | Jika canRetryWithDeviceToken=true, izinkan satu retry tepercaya. Retry token cache menggunakan kembali scope yang disetujui dan disimpan; pemanggil deviceToken / scopes eksplisit mempertahankan scope yang diminta. Jika masih gagal, jalankan daftar periksa pemulihan token drift. |
AUTH_DEVICE_TOKEN_MISMATCH | Token per-perangkat yang di-cache sudah basi atau dicabut. | Putar/setujui ulang token perangkat menggunakan devices CLI, lalu sambungkan kembali. |
PAIRING_REQUIRED | Identitas perangkat diketahui tetapi belum disetujui untuk peran ini. | Setujui permintaan tertunda: openclaw devices list lalu openclaw devices approve <requestId>. |
- menunggu
connect.challenge - menandatangani payload yang terikat pada challenge
- mengirim
connect.params.device.noncedengan nonce challenge yang sama
openclaw devices rotate / revoke / remove ditolak secara tak terduga:
- sesi token paired-device hanya dapat mengelola perangkatnya sendiri kecuali
pemanggil juga memiliki
operator.admin openclaw devices rotate --scope ...hanya dapat meminta scope operator yang sudah dimiliki oleh sesi pemanggil
- /web/control-ui
- /gateway/configuration (mode auth gateway)
- /gateway/trusted-proxy-auth
- /gateway/remote
- /cli/devices
Layanan gateway tidak berjalan
Gunakan ini saat layanan sudah terinstal tetapi proses tidak tetap berjalan.Runtime: stoppeddengan petunjuk exit.- Ketidakcocokan config layanan (
Config (cli)vsConfig (service)). - Konflik port/listener.
- Instalasi launchd/systemd/schtasks tambahan saat
--deepdigunakan. - Petunjuk pembersihan
Other gateway-like services detected (best effort).
Gateway start blocked: set gateway.mode=localatauexisting config is missing gateway.mode→ mode gateway lokal tidak diaktifkan, atau file config tertimpa dan kehilangangateway.mode. Perbaikan: aturgateway.mode="local"dalam config Anda, atau jalankan ulangopenclaw onboard --mode local/openclaw setupuntuk menulis ulang config mode lokal yang diharapkan. Jika Anda menjalankan OpenClaw melalui Podman, jalur config default adalah~/.openclaw/openclaw.json.refusing to bind gateway ... without auth→ bind non-loopback tanpa jalur auth gateway yang valid (token/password, atau trusted-proxy jika dikonfigurasi).another gateway instance is already listening/EADDRINUSE→ konflik port.Other gateway-like services detected (best effort)→ unit launchd/systemd/schtasks yang basi atau paralel masih ada. Sebagian besar setup sebaiknya mempertahankan satu gateway per mesin; jika Anda memang memerlukan lebih dari satu, isolasikan port + config/status/workspace. Lihat /gateway#multiple-gateways-same-host.
Peringatan probe Gateway
Gunakan ini saatopenclaw gateway probe mencapai sesuatu, tetapi tetap menampilkan blok peringatan.
warnings[].codedanprimaryTargetIddalam output JSON.- Apakah peringatannya tentang fallback SSH, beberapa gateway, scope yang hilang, atau auth ref yang tidak terselesaikan.
SSH tunnel failed to start; falling back to direct probes.→ penyiapan SSH gagal, tetapi perintah tetap mencoba target langsung yang dikonfigurasi/loopback.multiple reachable gateways detected→ lebih dari satu target merespons. Biasanya ini berarti setup multi-gateway yang disengaja atau listener yang basi/duplikat.Probe diagnostics are limited by gateway scopes (missing operator.read)→ connect berhasil, tetapi detail RPC dibatasi oleh scope; pasangkan identitas perangkat atau gunakan kredensial denganoperator.read.- teks peringatan SecretRef
gateway.auth.*/gateway.remote.*yang tidak terselesaikan → materi auth tidak tersedia di jalur perintah ini untuk target yang gagal.
Pesan channel terhubung tetapi tidak mengalir
Jika status channel terhubung tetapi aliran pesan mati, fokuslah pada kebijakan, izin, dan aturan pengiriman spesifik channel.- Kebijakan DM (
pairing,allowlist,open,disabled). - Allowlist grup dan persyaratan mention.
- Izin/scope API channel yang hilang.
mention required→ pesan diabaikan oleh kebijakan mention grup.- jejak
pairing/ persetujuan tertunda → pengirim belum disetujui. missing_scope,not_in_channel,Forbidden,401/403→ masalah auth/izin channel.
Pengiriman cron dan heartbeat
Jika cron atau heartbeat tidak berjalan atau tidak terkirim, verifikasi status scheduler terlebih dahulu, lalu target pengirimannya.- Cron diaktifkan dan waktu bangun berikutnya ada.
- Status riwayat eksekusi job (
ok,skipped,error). - Alasan heartbeat dilewati (
quiet-hours,requests-in-flight,alerts-disabled,empty-heartbeat-file,no-tasks-due).
cron: scheduler disabled; jobs will not run automatically→ cron dinonaktifkan.cron: timer tick failed→ tick scheduler gagal; periksa file/log/error runtime.heartbeat skippeddenganreason=quiet-hours→ di luar jendela jam aktif.heartbeat skippeddenganreason=empty-heartbeat-file→HEARTBEAT.mdada tetapi hanya berisi baris kosong / heading markdown, sehingga OpenClaw melewati pemanggilan model.heartbeat skippeddenganreason=no-tasks-due→HEARTBEAT.mdberisi bloktasks:, tetapi tidak ada tugas yang jatuh tempo pada tick ini.heartbeat: unknown accountId→ account id tidak valid untuk target pengiriman heartbeat.heartbeat skippeddenganreason=dm-blocked→ target heartbeat terselesaikan ke tujuan bergaya DM sementaraagents.defaults.heartbeat.directPolicy(atau override per agen) diatur keblock.
Tool node berpasangan gagal
Jika sebuah node sudah dipasangkan tetapi tool gagal, isolasi status foreground, izin, dan persetujuan.- Node online dengan kapabilitas yang diharapkan.
- Pemberian izin OS untuk kamera/mikrofon/lokasi/layar.
- Persetujuan exec dan status allowlist.
NODE_BACKGROUND_UNAVAILABLE→ aplikasi node harus berada di foreground.*_PERMISSION_REQUIRED/LOCATION_PERMISSION_REQUIRED→ izin OS tidak ada.SYSTEM_RUN_DENIED: approval required→ persetujuan exec tertunda.SYSTEM_RUN_DENIED: allowlist miss→ perintah diblokir oleh allowlist.
Tool browser gagal
Gunakan ini saat aksi tool browser gagal meskipun gateway sendiri sehat.- Apakah
plugins.allowdiatur dan menyertakanbrowser. - Jalur executable browser valid.
- Keterjangkauan profil CDP.
- Ketersediaan Chrome lokal untuk profil
existing-session/user.
unknown command "browser"atauunknown command 'browser'→ plugin browser bawaan dikecualikan olehplugins.allow.- tool browser hilang / tidak tersedia saat
browser.enabled=true→plugins.allowmengecualikanbrowser, sehingga plugin tidak pernah dimuat. Failed to start Chrome CDP on port→ proses browser gagal dijalankan.browser.executablePath not found→ jalur yang dikonfigurasi tidak valid.browser.cdpUrl must be http(s) or ws(s)→ URL CDP yang dikonfigurasi menggunakan skema yang tidak didukung sepertifile:atauftp:.browser.cdpUrl has invalid port→ URL CDP yang dikonfigurasi memiliki port yang buruk atau di luar rentang.No Chrome tabs found for profile="user"→ profil attach Chrome MCP tidak memiliki tab Chrome lokal yang terbuka.Remote CDP for profile "<name>" is not reachable→ endpoint CDP remote yang dikonfigurasi tidak dapat dijangkau dari host gateway.Browser attachOnly is enabled ... not reachableatauBrowser attachOnly is enabled and CDP websocket ... is not reachable→ profil attach-only tidak memiliki target yang dapat dijangkau, atau endpoint HTTP merespons tetapi WebSocket CDP tetap tidak dapat dibuka.Playwright is not available in this gateway build; '<feature>' is unsupported.→ instalasi gateway saat ini tidak memiliki paket Playwright lengkap; snapshot ARIA dan screenshot halaman dasar masih dapat berfungsi, tetapi navigasi, snapshot AI, screenshot elemen pemilih CSS, dan ekspor PDF tetap tidak tersedia.fullPage is not supported for element screenshots→ permintaan screenshot mencampurkan--full-pagedengan--refatau--element.element screenshots are not supported for existing-session profiles; use ref from snapshot.→ pemanggilan screenshot Chrome MCP /existing-sessionharus menggunakan pengambilan halaman atau--refdari snapshot, bukan CSS--element.existing-session file uploads do not support element selectors; use ref/inputRef.→ hook upload Chrome MCP memerlukan ref snapshot, bukan selector CSS.existing-session file uploads currently support one file at a time.→ kirim satu upload per pemanggilan pada profil Chrome MCP.existing-session dialog handling does not support timeoutMs.→ hook dialog pada profil Chrome MCP tidak mendukung override timeout.response body is not supported for existing-session profiles yet.→responsebodymasih memerlukan browser terkelola atau profil CDP mentah.- override viewport / dark-mode / locale / offline yang basi pada profil attach-only atau CDP remote → jalankan
openclaw browser stop --browser-profile <name>untuk menutup sesi kontrol aktif dan melepaskan status emulasi Playwright/CDP tanpa me-restart seluruh gateway.
Jika Anda melakukan upgrade dan sesuatu tiba-tiba rusak
Sebagian besar kerusakan setelah upgrade adalah config drift atau default yang lebih ketat yang sekarang diberlakukan.1) Perilaku override auth dan URL berubah
- Jika
gateway.mode=remote, pemanggilan CLI mungkin menargetkan remote sementara layanan lokal Anda baik-baik saja. - Pemanggilan
--urleksplisit tidak melakukan fallback ke kredensial yang tersimpan.
gateway connect failed:→ target URL salah.unauthorized→ endpoint dapat dijangkau tetapi auth salah.
2) Guardrail bind dan auth lebih ketat
- Bind non-loopback (
lan,tailnet,custom) memerlukan jalur auth gateway yang valid: auth shared token/password, atau deploymenttrusted-proxynon-loopback yang dikonfigurasi dengan benar. - Kunci lama seperti
gateway.tokentidak menggantikangateway.auth.token.
refusing to bind gateway ... without auth→ bind non-loopback tanpa jalur auth gateway yang valid.RPC probe: failedsaat runtime berjalan → gateway hidup tetapi tidak dapat diakses dengan auth/url saat ini.
3) Status pairing dan identitas perangkat berubah
- Persetujuan perangkat tertunda untuk dashboard/node.
- Persetujuan pairing DM tertunda setelah perubahan kebijakan atau identitas.
device identity required→ auth perangkat tidak terpenuhi.pairing required→ pengirim/perangkat harus disetujui.