Bậc thang lệnh
Chạy các lệnh này trước, theo thứ tự này:openclaw gateway statushiển thịRuntime: running,Connectivity probe: ok, và một dòngCapability: ....openclaw doctorbáo cáo không có sự cố cấu hình/dịch vụ gây chặn.openclaw channels status --probehiển thị trạng thái truyền tải trực tiếp theo từng tài khoản và, ở nơi được hỗ trợ, kết quả thăm dò/kiểm tra nhưworkshoặcaudit ok.
Sau một bản cập nhật
Dùng phần này khi một bản cập nhật hoàn tất nhưng Gateway bị tắt, kênh trống, hoặc lệnh gọi mô hình bắt đầu lỗi với 401.Update restarttrongopenclaw status/openclaw status --all. Các bàn giao đang chờ xử lý hoặc thất bại bao gồm lệnh tiếp theo cần chạy.plugin load failed: dependency tree corrupted; run openclaw doctor --fixdưới Channels. Điều đó nghĩa là cấu hình kênh vẫn tồn tại, nhưng đăng ký plugin thất bại trước khi kênh có thể tải.- provider 401s sau khi xác thực lại.
openclaw doctor --fixkiểm tra các bóng xác thực OAuth theo từng agent đã cũ và xóa các bản sao cũ để tất cả agent phân giải hồ sơ dùng chung hiện tại.
Cài đặt split brain và chốt chặn cấu hình mới hơn
Dùng phần này khi một dịch vụ gateway dừng bất ngờ sau một bản cập nhật, hoặc nhật ký cho thấy một binaryopenclaw cũ hơn phiên bản đã ghi openclaw.json lần cuối.
OpenClaw đóng dấu các lần ghi cấu hình bằng meta.lastTouchedVersion. Các lệnh chỉ đọc vẫn có thể kiểm tra cấu hình được ghi bởi OpenClaw mới hơn, nhưng các thay đổi tiến trình và dịch vụ từ chối tiếp tục từ một binary cũ hơn. Các hành động bị chặn bao gồm khởi động, dừng, khởi động lại, gỡ cài đặt dịch vụ gateway, cài đặt lại dịch vụ cưỡng bức, khởi động gateway ở chế độ dịch vụ, và dọn dẹp cổng gateway --force.
Không khớp giao thức sau khi rollback
Dùng phần này khi nhật ký liên tục inprotocol mismatch sau khi bạn hạ cấp hoặc rollback OpenClaw. Điều này nghĩa là một Gateway cũ hơn đang chạy, nhưng một tiến trình client cục bộ mới hơn vẫn đang cố kết nối lại bằng một dải giao thức mà Gateway cũ hơn không nói được.
protocol mismatch ... client=... v<version> min=<n> max=<n> expected=<n>trong nhật ký Gateway.Established clients:trongopenclaw gateway status --deephoặcGateway clientstrongopenclaw doctor --deep. Phần này liệt kê các client TCP đang hoạt động được kết nối với cổng Gateway, bao gồm PID và dòng lệnh khi hệ điều hành cho phép.- Một tiến trình client có dòng lệnh trỏ tới bản cài đặt OpenClaw hoặc wrapper mới hơn mà bạn đã rollback khỏi.
- Dừng hoặc khởi động lại tiến trình client OpenClaw cũ hiển thị bởi
gateway status --deep. - Khởi động lại ứng dụng hoặc wrapper nhúng OpenClaw, chẳng hạn như dashboard cục bộ, trình biên tập, helper máy chủ ứng dụng, hoặc các shell
openclaw logs --followchạy lâu. - Chạy lại
openclaw gateway status --deephoặcopenclaw doctor --deepvà xác nhận PID client cũ đã biến mất.
Symlink Skill bị bỏ qua vì thoát khỏi đường dẫn
Dùng phần này khi nhật ký bao gồm:~/.agents/skills, <workspace>/.agents/skills, <workspace>/skills, hoặc
~/.openclaw/skills sẽ bị bỏ qua khi đích thực của nó phân giải ra ngoài gốc đó
trừ khi đích được tin cậy rõ ràng.
Kiểm tra liên kết:
~, /, hoặc toàn bộ thư mục dự án được đồng bộ.
Giữ allowSymlinkTargets giới hạn trong gốc skill thực chứa các thư mục
SKILL.md đáng tin cậy.
Nếu thao tác áp dụng của Skill Workshop cũng cần ghi xuyên qua các đường dẫn skill workspace
symlink đáng tin cậy đó, hãy bật skills.workshop.allowSymlinkTargetWrites. Giữ
nó tắt cho các gốc skill dùng chung chỉ đọc.
Liên quan:
Anthropic 429 yêu cầu mức sử dụng bổ sung cho ngữ cảnh dài
Dùng phần này khi nhật ký/lỗi bao gồm:HTTP 429: rate_limit_error: Extra usage is required for long context requests.
- Mô hình Anthropic được chọn là một mô hình Claude 4.x 1M có khả năng GA, hoặc mô hình có
params.context1m: truekế thừa. - Thông tin xác thực Anthropic hiện tại không đủ điều kiện cho sử dụng ngữ cảnh dài.
- Yêu cầu chỉ thất bại trên các phiên/lần chạy mô hình dài cần đường dẫn ngữ cảnh 1M.
Dùng cửa sổ ngữ cảnh tiêu chuẩn
Chuyển sang mô hình cửa sổ tiêu chuẩn, hoặc xóa
context1m kế thừa khỏi cấu hình
mô hình cũ hơn không có khả năng GA cho ngữ cảnh 1M.Dùng thông tin xác thực đủ điều kiện
Dùng thông tin xác thực Anthropic đủ điều kiện cho yêu cầu ngữ cảnh dài, hoặc chuyển sang khóa API Anthropic.
Phản hồi 403 bị chặn từ upstream
Dùng phần này khi một provider LLM upstream trả về403 chung như
Your request was blocked.
Đừng giả định đây luôn là vấn đề cấu hình OpenClaw. Phản hồi có thể
đến từ một lớp bảo mật upstream như CDN, WAF, quy tắc quản lý bot, hoặc
reverse proxy phía trước một endpoint tương thích OpenAI.
- nhiều mô hình dưới cùng một provider thất bại theo cùng một cách
- HTML hoặc văn bản bảo mật chung thay vì lỗi API provider bình thường
- sự kiện bảo mật phía provider cho cùng thời điểm yêu cầu
- một thăm dò
curltrực tiếp rất nhỏ thành công trong khi các yêu cầu dạng SDK bình thường thất bại
Backend cục bộ tương thích OpenAI vượt qua thăm dò trực tiếp nhưng lần chạy agent thất bại
Dùng phần này khi:curl ... /v1/modelshoạt động- lệnh gọi trực tiếp nhỏ
/v1/chat/completionshoạt động - Lần chạy mô hình OpenClaw chỉ thất bại trên lượt agent bình thường
- các lệnh gọi nhỏ trực tiếp thành công, nhưng lần chạy OpenClaw chỉ thất bại trên prompt lớn hơn
- lỗi
model_not_foundhoặc 404 dù/v1/chat/completionstrực tiếp hoạt động với cùng id mô hình trần - lỗi backend về việc
messages[].contentmong đợi một chuỗi - cảnh báo
incomplete turn detected ... stopReason=stop payloads=0ngắt quãng với backend cục bộ tương thích OpenAI - backend crash chỉ xuất hiện với số lượng token prompt lớn hơn hoặc prompt runtime agent đầy đủ
Dấu hiệu thường gặp
Dấu hiệu thường gặp
model_not_foundvới máy chủ kiểu MLX/vLLM cục bộ → xác minhbaseUrlbao gồm/v1,apilà"openai-completions"cho backend/v1/chat/completions, vàmodels.providers.<provider>.models[].idlà id cục bộ của provider dạng trần. Chọn nó với tiền tố provider một lần, ví dụmlx/mlx-community/Qwen3-30B-A3B-6bit; giữ mục catalog làmlx-community/Qwen3-30B-A3B-6bit.messages[...].content: invalid type: sequence, expected a string→ backend từ chối các phần nội dung Chat Completions có cấu trúc. Cách khắc phục: đặtmodels.providers.<provider>.models[].compat.requiresStringContent: true.validation.keyshoặc các khóa tin nhắn được phép như["role","content"]→ backend từ chối metadata phát lại kiểu OpenAI trên tin nhắn Chat Completions. Cách khắc phục: đặtmodels.providers.<provider>.models[].compat.strictMessageKeys: true.incomplete turn detected ... stopReason=stop payloads=0→ backend đã hoàn tất yêu cầu Chat Completions nhưng không trả về văn bản trợ lý hiển thị cho người dùng cho lượt đó. OpenClaw thử lại các lượt trống tương thích OpenAI an toàn khi phát lại một lần; lỗi dai dẳng thường nghĩa là backend đang phát nội dung trống/không phải văn bản hoặc chặn văn bản câu trả lời cuối cùng.- yêu cầu nhỏ trực tiếp thành công, nhưng lần chạy agent OpenClaw thất bại với crash backend/mô hình (ví dụ Gemma trên một số bản dựng
inferrs) → truyền tải OpenClaw có khả năng đã đúng; backend đang thất bại trên dạng prompt runtime agent lớn hơn. - lỗi giảm sau khi tắt công cụ nhưng không biến mất → schema công cụ là một phần áp lực, nhưng vấn đề còn lại vẫn là năng lực mô hình/máy chủ upstream hoặc lỗi backend.
Tùy chọn khắc phục
Tùy chọn khắc phục
- Đặt
compat.requiresStringContent: truecho backend Chat Completions chỉ nhận chuỗi. - Đặt
compat.strictMessageKeys: truecho backend Chat Completions nghiêm ngặt chỉ chấp nhậnrolevàcontenttrên mỗi tin nhắn. - Đặt
compat.supportsTools: falsecho các mô hình/backend không thể xử lý đáng tin cậy bề mặt schema công cụ của OpenClaw. - Giảm áp lực prompt khi có thể: bootstrap workspace nhỏ hơn, lịch sử phiên ngắn hơn, mô hình cục bộ nhẹ hơn, hoặc backend có hỗ trợ ngữ cảnh dài mạnh hơn.
- Nếu các yêu cầu nhỏ trực tiếp vẫn thành công trong khi lượt agent OpenClaw vẫn crash bên trong backend, hãy xem đây là giới hạn upstream của máy chủ/mô hình và gửi repro ở đó với dạng payload được chấp nhận.
Không có phản hồi
Nếu các kênh đang hoạt động nhưng không có gì trả lời, hãy kiểm tra định tuyến và chính sách trước khi kết nối lại bất kỳ thứ gì.- Ghép cặp đang chờ xử lý đối với người gửi DM.
- Chặn theo lượt nhắc trong nhóm (
requireMention,mentionPatterns). - Không khớp danh sách cho phép của kênh/nhóm.
drop guild message (mention required→ tin nhắn nhóm bị bỏ qua cho đến khi có lượt nhắc.pairing request→ người gửi cần được phê duyệt.blocked/allowlist→ người gửi/kênh đã bị chính sách lọc.
Kết nối giao diện điều khiển bảng điều khiển
Khi bảng điều khiển/giao diện điều khiển không kết nối được, hãy xác thực URL, chế độ xác thực và các giả định về ngữ cảnh an toàn.- URL thăm dò và URL bảng điều khiển đúng.
- Không khớp chế độ xác thực/token giữa máy khách và gateway.
- Dùng HTTP ở nơi yêu cầu danh tính thiết bị.
127.0.0.1:18789 sau khi cập nhật, trước tiên
hãy khôi phục dịch vụ Gateway cục bộ và xác nhận dịch vụ đang phục vụ bảng điều khiển:
curl trả về HTML của OpenClaw, Gateway đang hoạt động và vấn đề còn lại
có thể là bộ nhớ đệm trình duyệt, liên kết sâu cũ hoặc trạng thái tab lỗi thời. Mở
http://127.0.0.1:18789 trực tiếp và điều hướng từ bảng điều khiển. Nếu khởi động lại
không giữ dịch vụ tiếp tục chạy, hãy chạy openclaw gateway start và kiểm tra lại
openclaw gateway status.
Dấu hiệu kết nối / xác thực
Dấu hiệu kết nối / xác thực
device identity required→ ngữ cảnh không an toàn hoặc thiếu xác thực thiết bị.origin not allowed→Origincủa trình duyệt không nằm tronggateway.controlUi.allowedOrigins(hoặc bạn đang kết nối từ origin trình duyệt không phải loopback mà không có danh sách cho phép rõ ràng).device nonce required/device nonce mismatch→ máy khách chưa hoàn tất luồng xác thực thiết bị dựa trên thử thách (connect.challenge+device.nonce).device signature invalid/device signature expired→ máy khách đã ký sai payload (hoặc dấu thời gian lỗi thời) cho bắt tay hiện tại.AUTH_TOKEN_MISMATCHvớicanRetryWithDeviceToken=true→ máy khách có thể thực hiện một lần thử lại đáng tin cậy bằng token thiết bị đã lưu trong bộ nhớ đệm.- Lần thử lại bằng token đã lưu đó tái sử dụng tập phạm vi đã lưu cùng với token thiết bị đã ghép cặp. Các caller dùng
deviceTokenrõ ràng /scopesrõ ràng vẫn giữ tập phạm vi đã yêu cầu của chúng. AUTH_SCOPE_MISMATCH→ token thiết bị đã được nhận diện, nhưng các phạm vi đã phê duyệt của nó không bao phủ yêu cầu kết nối này; hãy ghép cặp lại hoặc phê duyệt hợp đồng phạm vi được yêu cầu thay vì xoay token gateway dùng chung.- Ngoài đường dẫn thử lại đó, thứ tự ưu tiên xác thực kết nối là token/mật khẩu dùng chung rõ ràng trước, sau đó là
deviceTokenrõ ràng, rồi token thiết bị đã lưu, rồi token bootstrap. - Trên đường dẫn giao diện điều khiển Tailscale Serve bất đồng bộ, các lần thử thất bại cho cùng
{scope, ip}được tuần tự hóa trước khi bộ giới hạn ghi nhận lỗi. Vì vậy hai lần thử lại đồng thời không hợp lệ từ cùng máy khách có thể hiển thịretry laterở lần thử thứ hai thay vì hai lỗi không khớp thông thường. too many failed authentication attempts (retry later)từ máy khách loopback có origin trình duyệt → các lỗi lặp lại từ cùngOriginđã chuẩn hóa đó bị khóa tạm thời; origin localhost khác dùng một bucket riêng.- lặp lại
unauthorizedsau lần thử lại đó → token dùng chung/token thiết bị bị lệch; làm mới cấu hình token và phê duyệt lại/xoay token thiết bị nếu cần. gateway connect failed:→ sai đích host/port/url.
Bản đồ nhanh mã chi tiết xác thực
Dùngerror.details.code từ phản hồi connect thất bại để chọn hành động tiếp theo:
| Mã chi tiết | Ý nghĩa | Hành động được khuyến nghị |
|---|---|---|
AUTH_TOKEN_MISSING | Máy khách không gửi token dùng chung bắt buộc. | Dán/đặt token trong máy khách và thử lại. Với đường dẫn bảng điều khiển: openclaw config get gateway.auth.token rồi dán vào cài đặt giao diện điều khiển. |
AUTH_TOKEN_MISMATCH | Token dùng chung không khớp với token xác thực gateway. | Nếu canRetryWithDeviceToken=true, cho phép một lần thử lại đáng tin cậy. Các lần thử lại bằng token đã lưu tái sử dụng phạm vi đã phê duyệt đã lưu; các caller dùng deviceToken / scopes rõ ràng vẫn giữ phạm vi đã yêu cầu. Nếu vẫn thất bại, chạy danh sách kiểm tra khôi phục lệch token. |
AUTH_DEVICE_TOKEN_MISMATCH | Token theo thiết bị đã lưu bị lỗi thời hoặc đã bị thu hồi. | Xoay/phê duyệt lại token thiết bị bằng CLI thiết bị, rồi kết nối lại. |
AUTH_SCOPE_MISMATCH | Token thiết bị hợp lệ, nhưng vai trò/phạm vi đã phê duyệt của nó không bao phủ yêu cầu kết nối này. | Ghép cặp lại thiết bị hoặc phê duyệt hợp đồng phạm vi được yêu cầu; đừng xử lý việc này như lệch token dùng chung. |
PAIRING_REQUIRED | Danh tính thiết bị cần được phê duyệt. Kiểm tra error.details.reason để biết not-paired, scope-upgrade, role-upgrade, hoặc metadata-upgrade, và dùng requestId / remediationHint khi có. | Phê duyệt yêu cầu đang chờ: openclaw devices list rồi openclaw devices approve <requestId>. Nâng cấp phạm vi/vai trò dùng cùng luồng sau khi bạn xem xét quyền truy cập được yêu cầu. |
Các RPC backend loopback trực tiếp được xác thực bằng token/mật khẩu gateway dùng chung không nên phụ thuộc vào baseline phạm vi thiết bị đã ghép cặp của CLI. Nếu subagent hoặc các lệnh gọi nội bộ khác vẫn thất bại với
scope-upgrade, hãy xác minh caller đang dùng client.id: "gateway-client" và client.mode: "backend" và không ép buộc deviceIdentity hoặc token thiết bị rõ ràng.
Nếu
openclaw devices rotate / revoke / remove bị từ chối ngoài dự kiến:
- các phiên token thiết bị đã ghép cặp chỉ có thể quản lý thiết bị của chính chúng trừ khi caller cũng có
operator.admin openclaw devices rotate --scope ...chỉ có thể yêu cầu các phạm vi operator mà phiên caller đã có
- Cấu hình (chế độ xác thực gateway)
- Giao diện điều khiển
- Thiết bị
- Truy cập từ xa
- Xác thực proxy tin cậy
Dịch vụ Gateway không chạy
Dùng phần này khi dịch vụ đã được cài đặt nhưng tiến trình không duy trì hoạt động.Runtime: stoppedvới gợi ý mã thoát.- Không khớp cấu hình dịch vụ (
Config (cli)so vớiConfig (service)). - Xung đột cổng/listener.
- Cài đặt launchd/systemd/schtasks bổ sung khi dùng
--deep. - Gợi ý dọn dẹp
Other gateway-like services detected (best effort).
Dấu hiệu thường gặp
Dấu hiệu thường gặp
Gateway start blocked: set gateway.mode=localhoặcexisting config is missing gateway.mode→ chế độ gateway cục bộ chưa được bật, hoặc tệp cấu hình đã bị ghi đè và mấtgateway.mode. Cách sửa: đặtgateway.mode="local"trong cấu hình của bạn, hoặc chạy lạiopenclaw onboard --mode local/openclaw setupđể đóng dấu lại cấu hình chế độ cục bộ mong đợi. Nếu bạn đang chạy OpenClaw qua Podman, đường dẫn cấu hình mặc định là~/.openclaw/openclaw.json.refusing to bind gateway ... without auth→ bind không phải loopback mà không có đường dẫn xác thực gateway hợp lệ (token/mật khẩu, hoặc trusted-proxy khi đã cấu hình).another gateway instance is already listening/EADDRINUSE→ xung đột cổng.Other gateway-like services detected (best effort)→ tồn tại các đơn vị launchd/systemd/schtasks lỗi thời hoặc chạy song song. Hầu hết thiết lập nên giữ một gateway trên mỗi máy; nếu bạn cần nhiều hơn một, hãy cô lập cổng + cấu hình/trạng thái/workspace. Xem /gateway#multiple-gateways-same-host.System-level OpenClaw gateway service detectedtừ doctor → tồn tại một đơn vị hệ thống systemd trong khi dịch vụ cấp người dùng bị thiếu. Gỡ bỏ hoặc vô hiệu hóa bản trùng lặp trước khi cho phép doctor cài đặt dịch vụ người dùng, hoặc đặtOPENCLAW_SERVICE_REPAIR_POLICY=externalnếu đơn vị hệ thống là supervisor dự kiến.Gateway service port does not match current gateway config→ supervisor đã cài đặt vẫn ghim--portcũ. Chạyopenclaw doctor --fixhoặcopenclaw gateway install --force, rồi khởi động lại dịch vụ gateway.
Gateway macOS âm thầm ngừng phản hồi, rồi tiếp tục khi bạn chạm vào bảng điều khiển
Dùng phần này khi các kênh (Telegram, WhatsApp, v.v.) trên máy chủ macOS im lặng trong vài phút đến vài giờ mỗi lần, và gateway có vẻ hoạt động trở lại ngay khi bạn mở giao diện điều khiển, SSH vào, hoặc tương tác với máy chủ theo cách khác. Thường không có triệu chứng rõ ràng trongopenclaw status vì đến lúc bạn kiểm tra thì gateway đã hoạt động lại.
- Một hoặc nhiều gói
*-uncaught_exception.jsontrong~/.openclaw/logs/stability/cóerror.codeđược đặt thành mã mạng tạm thời nhưENETDOWN,ENETUNREACH,EHOSTUNREACH, hoặcECONNREFUSED. - Các dòng
pmset -g lognhưEntering Sleep state due to 'Maintenance Sleep'hoặcen0 driver is slow (msg: WillChangeState to 0)khớp với dấu thời gian sự cố. Power Nap / Maintenance Sleep tạm thời đưa trình điều khiển Wi-Fi về trạng thái 0; bất kỳconnect()đi ra nào rơi vào khoảng thời gian đó đều có thể lỗi vớiENETDOWN, ngay cả trên máy chủ vốn có kết nối mạng đầy đủ. - Đầu ra
launchctl printhiển thịstate = not runningvới nhiềurunsgần đây và mã thoát, đặc biệt khi khoảng cách giữa sự cố và lần khởi chạy tiếp theo tính bằng khoảng một giờ thay vì vài giây. macOS launchd áp dụng một cổng bảo vệ hồi sinh không được tài liệu hóa sau một loạt sự cố, có thể ngừng tôn trọngKeepAlive=truecho đến khi một tác nhân bên ngoài như đăng nhập tương tác, kết nối bảng điều khiển, hoặclaunchctl kickstartkích hoạt lại nó.
- Một gói ổn định có
error.codelàENETDOWNhoặc mã cùng nhóm, với call stack trỏ vào NodenetlookupAndConnect/Socket.connect. OpenClaw2026.5.26và mới hơn phân loại các lỗi này là lỗi mạng tạm thời vô hại, nên chúng không còn lan tới trình xử lý uncaught cấp cao nhất; nếu bạn đang dùng bản phát hành cũ hơn, hãy nâng cấp trước. - Những khoảng lặng dài kết thúc ngay khi bạn kết nối tới Control UI hoặc SSH vào máy chủ: hoạt động người dùng nhìn thấy là thứ kích hoạt lại cổng hồi sinh của launchd, không phải bất kỳ việc gì bảng điều khiển làm với gateway.
- Số
runstăng trong ngày mà không có dòngreceived SIG*; shutting downtương ứng trong~/Library/Logs/openclaw/gateway.log: tắt sạch sẽ ghi log một tín hiệu; sự cố tạm thời thì không.
-
Nâng cấp gateway nếu bạn đang chạy bản phát hành trước
2026.5.26. Sau khi nâng cấp, các lỗiENETDOWNtrong tương lai sẽ được ghi log dưới dạng cảnh báo thay vì chấm dứt tiến trình. -
Giảm hoạt động maintenance sleep trên máy chủ Mac mini / desktop được dùng như máy chủ luôn bật:
Điều này giảm đáng kể, nhưng không loại bỏ hoàn toàn, tình trạng driver dao động bên dưới. Hệ thống vẫn có thể thực hiện một số maintenance sleep để duy trì TCP keepalive và mDNS bất kể các cờ này.
-
Thêm watchdog kiểm tra liveness để một loạt sự cố trong tương lai nếu bị launchd giữ lại sẽ được phát hiện nhanh:
Mục tiêu là kích hoạt lại cổng hồi sinh từ bên ngoài; chỉ
KeepAlive=truelà không đủ trên macOS sau một loạt sự cố.
Gateway thoát khi sử dụng nhiều bộ nhớ
Dùng phần này khi Gateway biến mất dưới tải, supervisor báo khởi động lại kiểu OOM, hoặc log nhắc tớicritical memory pressure bundle written.
Reason: diagnostic.memory.pressure.criticaltrong gói ổn định mới nhất.Memory pressure:vớicritical/rss_threshold,critical/heap_threshold, hoặccritical/rss_growth.- Các giá trị
V8 heap:gần giới hạn heap. - Các mục
Largest session files:nhưagents/<agent>/sessions/<session>.jsonlhoặcsessions/<session>.jsonl. - Bộ đếm bộ nhớ cgroup của Linux khi gateway chạy trong container hoặc dịch vụ bị giới hạn bộ nhớ.
critical memory pressure bundle writtenxuất hiện ngay trước khi khởi động lại → OpenClaw đã thu thập một gói ổn định trước OOM. Kiểm tra bằngopenclaw gateway stability --bundle latest.memory pressure: level=critical ... memoryPressureSnapshot=disabledxuất hiện trong log gateway → OpenClaw đã phát hiện áp lực bộ nhớ nghiêm trọng, nhưng ảnh chụp ổn định trước OOM đang tắt.Largest session files:trỏ tới một đường dẫn bản ghi đã biên tập rất lớn → giảm lịch sử phiên được giữ lại, kiểm tra mức tăng phiên, hoặc chuyển các bản ghi cũ ra khỏi kho hoạt động trước khi khởi động lại.- Số byte đã dùng trong
V8 heap:gần giới hạn heap → giảm áp lực prompt/phiên, giảm công việc đồng thời, hoặc chỉ tăng giới hạn heap của Node sau khi xác nhận workload là dự kiến. Memory pressure: critical/rss_growth→ bộ nhớ tăng nhanh trong một cửa sổ lấy mẫu. Kiểm tra log mới nhất để tìm import lớn, đầu ra công cụ mất kiểm soát, retry lặp lại, hoặc một lô công việc agent đang xếp hàng.- Áp lực bộ nhớ nghiêm trọng xuất hiện trong log nhưng không có gói nào → đây là mặc định. Đặt
diagnostics.memoryPressureSnapshot: trueđể thu thập gói ổn định trước OOM trong các sự kiện áp lực bộ nhớ nghiêm trọng sau này.
Gateway từ chối cấu hình không hợp lệ
Dùng phần này khi khởi động Gateway lỗi vớiInvalid config hoặc log hot reload cho biết
nó đã bỏ qua một chỉnh sửa không hợp lệ.
Invalid config at ...config reload skipped (invalid config): ...Config write rejected: ...- Một tệp
openclaw.json.rejected.*có dấu thời gian bên cạnh cấu hình đang hoạt động - Một tệp
openclaw.json.clobbered.*có dấu thời gian nếudoctor --fixđã sửa một chỉnh sửa trực tiếp bị hỏng - OpenClaw giữ 32 tệp
.clobbered.*mới nhất cho mỗi đường dẫn cấu hình và xoay vòng các tệp cũ hơn
Điều gì đã xảy ra
Điều gì đã xảy ra
- Cấu hình không vượt qua xác thực trong lúc khởi động, hot reload, hoặc một lần ghi do OpenClaw sở hữu.
- Khởi động Gateway fail-closed thay vì ghi lại
openclaw.json. - Hot reload bỏ qua các chỉnh sửa bên ngoài không hợp lệ và giữ cấu hình runtime hiện tại hoạt động.
- Các lần ghi do OpenClaw sở hữu từ chối payload không hợp lệ/phá hoại trước khi commit và lưu
.rejected.*. openclaw doctor --fixsở hữu việc sửa chữa. Nó có thể xóa tiền tố không phải JSON hoặc khôi phục bản sao last-known-good trong khi vẫn giữ payload bị từ chối dưới dạng.clobbered.*.- Khi có nhiều lần sửa cho một đường dẫn cấu hình, OpenClaw xoay vòng các tệp
.clobbered.*cũ hơn để payload đã sửa mới nhất vẫn có sẵn.
Kiểm tra và sửa
Kiểm tra và sửa
Dấu hiệu thường gặp
Dấu hiệu thường gặp
.clobbered.*tồn tại → doctor đã giữ lại một chỉnh sửa bên ngoài bị hỏng trong khi sửa cấu hình đang hoạt động..rejected.*tồn tại → một lần ghi cấu hình do OpenClaw sở hữu đã lỗi kiểm tra schema hoặc clobber trước khi commit.Config write rejected:→ lần ghi đã cố bỏ mất hình dạng bắt buộc, làm tệp nhỏ đi mạnh, hoặc lưu cấu hình không hợp lệ.config reload skipped (invalid config):→ một chỉnh sửa trực tiếp lỗi xác thực và bị Gateway đang chạy bỏ qua.Invalid config at ...→ khởi động lỗi trước khi các dịch vụ Gateway boot.missing-meta-vs-last-good,gateway-mode-missing-vs-last-good, hoặcsize-drop-vs-last-good:*→ một lần ghi do OpenClaw sở hữu bị từ chối vì mất trường hoặc kích thước so với bản sao lưu last-known-good.Config last-known-good promotion skipped→ ứng viên chứa placeholder bí mật đã biên tập như***.
Tùy chọn sửa
Tùy chọn sửa
- Chạy
openclaw doctor --fixđể doctor sửa cấu hình có tiền tố/bị ghi đè hoặc khôi phục last-known-good. - Chỉ sao chép các khóa bạn định dùng từ
.clobbered.*hoặc.rejected.*, rồi áp dụng chúng bằngopenclaw config sethoặcconfig.patch. - Chạy
openclaw config validatetrước khi khởi động lại. - Nếu bạn chỉnh sửa thủ công, hãy giữ cấu hình JSON5 đầy đủ, không chỉ object một phần mà bạn muốn thay đổi.
Cảnh báo probe Gateway
Dùng phần này khiopenclaw gateway probe truy cập được thứ gì đó, nhưng vẫn in một khối cảnh báo.
warnings[].codevàprimaryTargetIdtrong đầu ra JSON.- Cảnh báo liên quan đến SSH fallback, nhiều gateway, thiếu scope, hay auth ref chưa phân giải.
SSH tunnel failed to start; falling back to direct probes.→ thiết lập SSH thất bại, nhưng lệnh vẫn thử các mục tiêu được cấu hình/local loopback trực tiếp.multiple reachable gateway identities detected→ các gateway khác nhau đã trả lời, hoặc OpenClaw không thể chứng minh các mục tiêu truy cập được là cùng một gateway. Một SSH tunnel, URL proxy, hoặc URL từ xa được cấu hình tới cùng gateway được xem là một gateway với nhiều transport, ngay cả khi các cổng transport khác nhau.Read-probe diagnostics are limited by gateway scopes (missing operator.read)→ kết nối hoạt động, nhưng detail RPC bị giới hạn scope; ghép cặp danh tính thiết bị hoặc dùng thông tin xác thực cóoperator.read.Gateway accepted the WebSocket connection, but follow-up read diagnostics failed→ kết nối hoạt động, nhưng toàn bộ tập RPC chẩn đoán đã timeout hoặc thất bại. Xem đây là một Gateway truy cập được với chẩn đoán suy giảm; so sánhconnect.okvàconnect.rpcOktrong đầu ra--json.Capability: pairing-pendinghoặcgateway closed (1008): pairing required→ gateway đã trả lời, nhưng client này vẫn cần ghép cặp/phê duyệt trước khi có quyền truy cập operator bình thường.- văn bản cảnh báo SecretRef
gateway.auth.*/gateway.remote.*chưa phân giải → vật liệu auth không có sẵn trong đường dẫn lệnh này cho mục tiêu thất bại.
Kênh đã kết nối, tin nhắn không lưu thông
Nếu trạng thái kênh là đã kết nối nhưng luồng tin nhắn bị chết, hãy tập trung vào chính sách, quyền, và quy tắc phân phối riêng của kênh.- Chính sách DM (
pairing,allowlist,open,disabled). - Allowlist nhóm và yêu cầu nhắc tên.
- Thiếu quyền/scope API của kênh.
mention required→ tin nhắn bị chính sách nhắc tên trong nhóm bỏ qua.- Dấu vết
pairing/ pending approval → người gửi chưa được phê duyệt. missing_scope,not_in_channel,Forbidden,401/403→ vấn đề auth/quyền của kênh.
Phân phối Cron và Heartbeat
Nếu Cron hoặc Heartbeat không chạy hoặc không phân phối, hãy xác minh trạng thái scheduler trước, rồi đến mục tiêu phân phối.- Cron đã bật và có thời điểm đánh thức tiếp theo.
- Trạng thái lịch sử chạy tác vụ (
ok,skipped,error). - Lý do bỏ qua Heartbeat (
quiet-hours,requests-in-flight,cron-in-progress,lanes-busy,alerts-disabled,empty-heartbeat-file,no-tasks-due).
Dấu hiệu thường gặp
Dấu hiệu thường gặp
cron: scheduler disabled; jobs will not run automatically→ cron bị tắt.cron: timer tick failed→ tick của bộ lập lịch thất bại; kiểm tra lỗi tệp/nhật ký/runtime.heartbeat skippedvớireason=quiet-hours→ ngoài khung giờ hoạt động.heartbeat skippedvớireason=empty-heartbeat-file→HEARTBEAT.mdtồn tại nhưng chỉ chứa dòng trống, chú thích, tiêu đề, fence hoặc khung checklist rỗng, nên OpenClaw bỏ qua lệnh gọi mô hình.heartbeat skippedvớireason=no-tasks-due→HEARTBEAT.mdchứa một khốitasks:, nhưng không có tác vụ nào đến hạn trong tick này.heartbeat: unknown accountId→ id tài khoản không hợp lệ cho đích gửi Heartbeat.heartbeat skippedvớireason=dm-blocked→ đích Heartbeat được phân giải thành đích kiểu DM trong khiagents.defaults.heartbeat.directPolicy(hoặc ghi đè theo agent) được đặt thànhblock.
Node đã ghép nối, công cụ lỗi
Nếu một node đã ghép nối nhưng công cụ lỗi, hãy cô lập trạng thái foreground, quyền và phê duyệt.- Node trực tuyến với các khả năng mong đợi.
- Các quyền OS đã cấp cho camera/mic/vị trí/màn hình.
- Trạng thái phê duyệt exec và allowlist.
NODE_BACKGROUND_UNAVAILABLE→ ứng dụng node phải ở foreground.*_PERMISSION_REQUIRED/LOCATION_PERMISSION_REQUIRED→ thiếu quyền OS.SYSTEM_RUN_DENIED: approval required→ đang chờ phê duyệt exec.SYSTEM_RUN_DENIED: allowlist miss→ lệnh bị allowlist chặn.
Công cụ trình duyệt lỗi
Dùng mục này khi thao tác của công cụ trình duyệt thất bại dù bản thân gateway vẫn khỏe.plugins.allowcó được đặt và có bao gồmbrowserhay không.- Đường dẫn thực thi trình duyệt hợp lệ.
- Khả năng truy cập hồ sơ CDP.
- Tính sẵn có của Chrome cục bộ cho các hồ sơ
existing-session/user.
Dấu hiệu Plugin / tệp thực thi
Dấu hiệu Plugin / tệp thực thi
unknown command "browser"hoặcunknown command 'browser'→ Plugin trình duyệt đi kèm bịplugins.allowloại trừ.- công cụ trình duyệt bị thiếu / không khả dụng trong khi
browser.enabled=true→plugins.allowloại trừbrowser, nên Plugin không bao giờ được tải. Failed to start Chrome CDP on port→ tiến trình trình duyệt không khởi chạy được.browser.executablePath not found→ đường dẫn đã cấu hình không hợp lệ.browser.cdpUrl must be http(s) or ws(s)→ URL CDP đã cấu hình dùng scheme không được hỗ trợ nhưfile:hoặcftp:.browser.cdpUrl has invalid port→ URL CDP đã cấu hình có cổng sai hoặc nằm ngoài phạm vi.Playwright is not available in this gateway build; '<feature>' is unsupported.→ bản cài gateway hiện tại thiếu dependency runtime trình duyệt lõi; cài đặt lại hoặc cập nhật OpenClaw, rồi khởi động lại gateway. Ảnh chụp nhanh ARIA và ảnh chụp trang cơ bản vẫn có thể hoạt động, nhưng điều hướng, ảnh chụp nhanh AI, ảnh chụp phần tử bằng CSS selector và xuất PDF vẫn không khả dụng.
Dấu hiệu Chrome MCP / existing-session
Dấu hiệu Chrome MCP / existing-session
Could not find DevToolsActivePort for chrome→ Chrome MCP existing-session chưa thể gắn vào thư mục dữ liệu trình duyệt đã chọn. Mở trang inspect của trình duyệt, bật gỡ lỗi từ xa, giữ trình duyệt mở, phê duyệt lời nhắc gắn đầu tiên, rồi thử lại. Nếu không cần trạng thái đã đăng nhập, nên dùng hồ sơopenclawđược quản lý.No Chrome tabs found for profile="user"→ hồ sơ gắn Chrome MCP không có tab Chrome cục bộ nào đang mở.Remote CDP for profile "<name>" is not reachable→ endpoint CDP từ xa đã cấu hình không truy cập được từ máy chủ gateway.Browser attachOnly is enabled ... not reachablehoặcBrowser attachOnly is enabled and CDP websocket ... is not reachable→ hồ sơ chỉ gắn không có đích có thể truy cập, hoặc endpoint HTTP đã phản hồi nhưng CDP WebSocket vẫn không mở được.
Dấu hiệu phần tử / ảnh chụp màn hình / tải lên
Dấu hiệu phần tử / ảnh chụp màn hình / tải lên
fullPage is not supported for element screenshots→ yêu cầu ảnh chụp màn hình trộn--full-pagevới--refhoặc--element.element screenshots are not supported for existing-session profiles; use ref from snapshot.→ các lệnh gọi ảnh chụp màn hình Chrome MCP /existing-sessionphải dùng chụp trang hoặc--reftừ ảnh chụp nhanh, không dùng CSS--element.existing-session file uploads do not support element selectors; use ref/inputRef.→ hook tải lên Chrome MCP cần ref ảnh chụp nhanh, không phải CSS selector.existing-session file uploads currently support one file at a time.→ gửi một tệp tải lên mỗi lệnh gọi trên hồ sơ Chrome MCP.existing-session dialog handling does not support timeoutMs.→ hook hộp thoại trên hồ sơ Chrome MCP không hỗ trợ ghi đè timeout.existing-session type does not support timeoutMs overrides.→ bỏtimeoutMschoact:typetrên hồ sơprofile="user"/ Chrome MCP existing-session, hoặc dùng hồ sơ trình duyệt managed/CDP khi cần timeout tùy chỉnh.existing-session evaluate does not support timeoutMs overrides.→ bỏtimeoutMschoact:evaluatetrên hồ sơprofile="user"/ Chrome MCP existing-session, hoặc dùng hồ sơ trình duyệt managed/CDP khi cần timeout tùy chỉnh.response body is not supported for existing-session profiles yet.→responsebodyvẫn yêu cầu trình duyệt được quản lý hoặc hồ sơ CDP thô.- viewport / dark-mode / locale / override offline cũ trên hồ sơ attach-only hoặc CDP từ xa → chạy
openclaw browser stop --browser-profile <name>để đóng phiên điều khiển đang hoạt động và giải phóng trạng thái mô phỏng Playwright/CDP mà không cần khởi động lại toàn bộ gateway.
Nếu bạn đã nâng cấp và có thứ đột ngột hỏng
Hầu hết sự cố sau nâng cấp là do drift cấu hình hoặc các mặc định nghiêm ngặt hơn hiện đang được thực thi.1. Hành vi ghi đè auth và URL đã thay đổi
1. Hành vi ghi đè auth và URL đã thay đổi
- Nếu
gateway.mode=remote, các lệnh gọi CLI có thể đang nhắm tới remote trong khi dịch vụ cục bộ của bạn vẫn ổn. - Các lệnh gọi
--urlrõ ràng không fallback về thông tin xác thực đã lưu.
gateway connect failed:→ sai đích URL.unauthorized→ endpoint truy cập được nhưng auth sai.
2. Ràng buộc bind và auth nghiêm ngặt hơn
2. Ràng buộc bind và auth nghiêm ngặt hơn
- Bind không phải local loopback (
lan,tailnet,custom) cần đường dẫn auth gateway hợp lệ: auth token/mật khẩu dùng chung, hoặc triển khaitrusted-proxykhông phải local loopback được cấu hình đúng. - Các khóa cũ như
gateway.tokenkhông thay thếgateway.auth.token.
refusing to bind gateway ... without auth→ bind không phải local loopback nhưng không có đường dẫn auth gateway hợp lệ.Connectivity probe: failedtrong khi runtime đang chạy → gateway còn sống nhưng không truy cập được với auth/url hiện tại.
3. Trạng thái ghép nối và định danh thiết bị đã thay đổi
3. Trạng thái ghép nối và định danh thiết bị đã thay đổi
- Các phê duyệt thiết bị đang chờ cho dashboard/node.
- Các phê duyệt ghép nối DM đang chờ sau thay đổi chính sách hoặc định danh.
device identity required→ chưa thỏa mãn auth thiết bị.pairing required→ người gửi/thiết bị phải được phê duyệt.