Trình tự lệnh
Chạy theo thứ tự sau:openclaw gateway statushiển thịRuntime: running,Connectivity probe: okvà một dòngCapability: ....openclaw doctorbáo cáo không có vấn đề cấu hình/dịch vụ nào 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à, tại nơi được hỗ trợ,workshoặcaudit ok.
Sau khi cập nhật
Sử dụng khi quá trình cập nhật đã hoàn tất nhưng Gateway ngừng hoạt động, các kênh trống hoặc lệnh gọi mô hình thất bại với mã 401.Update restarttrongopenclaw status/openclaw status --all. Các lần 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 --fixtrong Channels: cấu hình kênh vẫn tồn tại, nhưng quá trình đăng ký plugin đã thất bại trước khi kênh có thể tải.- Mã 401 từ nhà cung cấp sau khi xác thực lại:
openclaw doctor --fixkiểm tra các bản sao xác thực OAuth cũ theo từng agent và xóa chúng để tất cả agent phân giải hồ sơ dùng chung hiện tại.
Các bản cài đặt phân tách và cơ chế bảo vệ cấu hình mới hơn
Sử dụng khi dịch vụ Gateway bất ngờ dừng sau khi cập nhật hoặc nhật ký cho thấy một tệp nhị phânopenclaw cũ hơn phiên bản đã ghi openclaw.json lần gần nhất.
OpenClaw đóng dấu các lần ghi cấu hình bằng meta.lastTouchedVersion. Các lệnh chỉ đọc có thể kiểm tra cấu hình được ghi bởi phiên bản OpenClaw mới hơn, nhưng thao tác thay đổi tiến trình và dịch vụ từ tệp nhị phân cũ hơn sẽ bị từ chối. Các hành động bị chặn: khởi động/dừng/khởi động lại/gỡ cài đặt dịch vụ Gateway, buộc cài đặt lại dịch vụ, khởi động Gateway ở chế độ dịch vụ và dọn dẹp cổng bằng gateway --force.
Sửa PATH
PATH để openclaw phân giải đến bản cài đặt mới hơn, rồi chạy lại hành động.Cài đặt lại dịch vụ Gateway
Xóa các wrapper cũ
openclaw cũ.Giao thức không khớp sau khi khôi phục phiên bản
Sử dụng khi nhật ký liên tục inprotocol mismatch sau khi hạ cấp hoặc khôi phục phiên bản. Một Gateway cũ hơn đang chạy, nhưng tiến trình máy khách cục bộ mới hơn vẫn kết nối lại bằng phạm vi giao thức mà Gateway cũ hơn không thể sử dụng.
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: các máy khách TCP đang hoạt động được kết nối với cổng Gateway, kèm PID và dòng lệnh khi hệ điều hành cho phép.- Một tiến trình máy khách có dòng lệnh trỏ đến bản cài đặt hoặc wrapper OpenClaw mới hơn mà bạn đã khôi phục khỏi đó.
- Dừng hoặc khởi động lại tiến trình máy khách OpenClaw cũ được hiển thị bởi
gateway status --deep. - Khởi động lại các ứng dụng hoặc wrapper nhúng OpenClaw: bảng điều khiển cục bộ, trình chỉnh sửa, trình trợ giúp máy chủ ứng dụng hoặc các shell
openclaw logs --followchạy dài hạn. - Chạy lại
openclaw gateway status --deephoặcopenclaw doctor --deepvà xác nhận PID của máy khách cũ đã biến mất.
Symlink của Skills bị bỏ qua do thoát khỏi đường dẫn
Sử dụng 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 thư mục 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ộ hóa. Giới hạn allowSymlinkTargets trong thư mục gốc thực của Skills 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 thông qua các đường dẫn Skills trong không gian làm việc được symlink và tin cậy đó, hãy bật skills.workshop.allowSymlinkTargetWrites. Giữ tùy chọn này ở trạng thái tắt đối với các thư mục gốc Skills dùng chung chỉ đọc.
Liên quan:
Anthropic 429 yêu cầu quyền sử dụng bổ sung cho ngữ cảnh dài
Sử dụng 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 đã chọn là mô hình Claude 4.x 1M hỗ trợ GA (Opus 4.6/4.7/4.8, Sonnet 4.6), hoặc cấu hình mô hình vẫn chứa
params.context1m: truecũ. - Thông tin xác thực Anthropic hiện tại không đủ điều kiện sử dụng ngữ cảnh dài.
- Yêu cầu chỉ thất bại trong các phiên/lần chạy mô hình dài cần đường dẫn ngữ cảnh 1M.
Sử dụng cửa sổ ngữ cảnh tiêu chuẩn
context1m cũ khỏi cấu hình
mô hình cũ không hỗ trợ GA cho ngữ cảnh 1M.Sử dụng thông tin xác thực đủ điều kiện
Cấu hình mô hình dự phòng
Phản hồi 403 bị chặn từ thượng nguồn
Sử dụng khi nhà cung cấp LLM thượng nguồn trả về một403 chung như Your request was blocked.
Khô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 thượng nguồn như CDN, WAF, quy tắc quản lý bot hoặc proxy ngược đứng trước một điểm cuối tương thích với OpenAI.
- Nhiều mô hình thuộc cùng một nhà cung cấp 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 thông thường của nhà cung cấp.
- Các sự kiện bảo mật phía nhà cung cấp tại cùng thời điểm yêu cầu.
- Một phép thăm dò
curltrực tiếp nhỏ thành công trong khi các yêu cầu có cấu trúc SDK thông thường thất bại.
Backend cục bộ tương thích với OpenAI vượt qua phép thăm dò trực tiếp nhưng lần chạy agent thất bại
Sử dụng khi:curl ... /v1/modelshoạt động.- Các lệnh gọi
/v1/chat/completionstrực tiếp nhỏ hoạt động. - Các lần chạy mô hình OpenClaw chỉ thất bại trong lượt agent thông thường.
- Các lệnh gọi trực tiếp nhỏ thành công, nhưng lần chạy OpenClaw chỉ thất bại với prompt lớn hơn.
model_not_foundhoặc lỗi 404 mặc dù/v1/chat/completionstrực tiếp hoạt động với cùng một ID mô hình thuần.- Lỗi backend cho biết
messages[].contentyêu cầu một chuỗi. - Cảnh báo
incomplete turn detected ... stopReason=stop payloads=0không liên tục với backend cục bộ tương thích với OpenAI. - Backend gặp sự cố chỉ xuất hiện với số lượng token trong prompt lớn hơn hoặc prompt đầy đủ của môi trường chạy agent.
Các dấu hiệu thường gặp
Các dấu hiệu thường gặp
model_not_foundvới máy chủ cục bộ kiểu MLX/vLLM: xác minhbaseUrlbao gồm/v1,apilà"openai-completions"đối với backend/v1/chat/completionsvàmodels.providers.<provider>.models[].idlà ID thuần cục bộ của nhà cung cấp. Chọn nó một lần với tiền tố nhà cung cấp, ví dụmlx/mlx-community/Qwen3-30B-A3B-6bit; giữ mục danh mục 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 thông điệp được phép như["role","content"]: backend từ chối siêu dữ liệu phát lại kiểu OpenAI trên thông điệp 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ý mà người dùng có thể thấy cho lượt đó. OpenClaw thử lại một lần đối với lượt tương thích với OpenAI trống và an toàn khi phát lại; lỗi kéo dài thường có nghĩa là backend đang phát nội dung trống/không phải văn bản hoặc ngăn văn bản câu trả lời cuối cùng.- Các yêu cầu trực tiếp nhỏ thành công, nhưng lần chạy agent OpenClaw thất bại do backend/mô hình gặp sự cố (ví dụ Gemma trên một số bản dựng
inferrs): phương thức truyền tải OpenClaw có thể đã chính xác; backend đang thất bại với cấu trúc prompt lớn hơn của môi trường chạy agent. - Lỗi giảm sau khi vô hiệu hóa công cụ nhưng không biến mất: lược đồ công cụ góp phần gây áp lực, nhưng vấn đề còn lại vẫn là dung lượng mô hình/máy chủ thượng nguồn hoặc lỗi backend.
Các phương án khắc phục
Các phương án khắc phục
- Đặt
compat.requiresStringContent: truecho các backend Chat Completions chỉ hỗ trợ chuỗi. - Đặt
compat.strictMessageKeys: truecho các backend Chat Completions nghiêm ngặt chỉ chấp nhậnrolevàcontenttrên mỗi thông điệp. - Đặt
compat.supportsTools: falsecho các mô hình/backend không thể xử lý đáng tin cậy bề mặt lược đồ công cụ của OpenClaw. - Giảm áp lực prompt khi có thể: phần khởi tạo không gian làm việc nhỏ hơn, lịch sử phiên ngắn hơn, mô hình cục bộ nhẹ hơn hoặc backend hỗ trợ ngữ cảnh dài tốt hơn.
- Nếu các yêu cầu trực tiếp nhỏ tiếp tục thành công trong khi lượt agent OpenClaw vẫn làm backend gặp sự cố, hãy coi đây là giới hạn của máy chủ/mô hình thượng nguồn và gửi báo cáo tái hiện tại đó kèm cấu trúc tải trọng đượ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ì phản hồ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ành phần nào.- Đang chờ ghép đôi cho người gửi tin nhắn trực tiếp.
- Cơ chế yêu cầu đề cập trong nhóm (
requireMention,mentionPatterns). - Danh sách cho phép của kênh/nhóm không khớp.
drop guild message (mention required→ tin nhắn nhóm bị bỏ qua cho đến khi có đề cập.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.
Khả năng kết nối của 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 bảo mật.- URL thăm dò và URL bảng điều khiển chính xác.
- Chế độ xác thực/token giữa máy khách và Gateway không khớp.
- Sử dụng HTTP trong trường hợp bắt buộc có 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 rằng dịch vụ đang cung cấp bảng điều khiển:
curl trả về HTML của OpenClaw, Gateway đang hoạt động và sự cố còn lại có thể là bộ nhớ đệm của trình duyệt, liên kết sâu cũ hoặc trạng thái thẻ đã lỗi thời. Mở trực tiếp http://127.0.0.1:18789 và điều hướng từ bảng điều khiển. Nếu sau khi khởi động lại, dịch vụ không 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 bảo mật 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ừ một nguồn gốc 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 không 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 tải trọng (hoặc dấu thời gian đã lỗi thời) cho quá trình 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 vào bộ nhớ đệm.- Lần thử lại bằng token đã lưu vào bộ nhớ đệm đó sẽ tái sử dụng tập phạm vi đã lưu cùng token thiết bị được ghép đôi. Thay vào đó, các bên gọi có
deviceTokenrõ ràng /scopesrõ ràng vẫn giữ tập phạm vi mà chúng yêu cầu. AUTH_SCOPE_MISMATCH→ token thiết bị đã được nhận dạng, nhưng các phạm vi được phê duyệt của token không bao phủ yêu cầu kết nối này; hãy ghép đôi lại hoặc phê duyệt hợp đồng phạm vi được yêu cầu thay vì xoay vòng 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 được chỉ định rõ ràng trước tiên, sau đó là
deviceTokenđược chỉ định rõ ràng, rồi token thiết bị đã lưu và cuối cùng là token khởi tạo. - 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 một
{scope, ip}được tuần tự hóa trước khi bộ giới hạn ghi nhận lỗi. Do đó, hai lần thử lại đồng thời không hợp lệ từ cùng một máy khách có thể khiến lần thử thứ hai hiển thịretry laterthay 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ó nguồn gốc trình duyệt → các lần thất bại lặp lại từ cùng mộtOriginđã chuẩn hóa sẽ tạm thời bị khóa; một nguồn gốc localhost khác sử dụng một vùng giới hạn riêng.unauthorizedlặp lại sau lần thử lại đó → token dùng chung/token thiết bị bị lệch; hãy làm mới cấu hình token và phê duyệt lại/xoay vòng token thiết bị nếu cần.gateway connect failed:→ sai máy chủ/cổng/URL đích.
Bản đồ nhanh mã chi tiết xác thực
Sử dụngerror.details.code từ phản hồi connect thất bại để chọn hành động tiếp theo:
scope-upgrade, hãy xác minh rằng bên gọi đang sử dụng client.id: "gateway-client" và client.mode: "backend", đồng thời không ép buộc deviceIdentity rõ ràng hoặc token thiết bị.Chờ connect.challenge
connect.challenge do Gateway cấp.Ký tải trọng
Gửi nonce của thiết bị
connect.params.device.nonce với cùng nonce thử thách.openclaw devices rotate / revoke / remove bị từ chối ngoài dự kiến:
- Các phiên token thiết bị đã ghép đôi chỉ có thể quản lý thiết bị của chính chúng, trừ khi bên gọi cũng có
operator.admin. openclaw devices rotate --scope ...chỉ có thể yêu cầu các phạm vi người vận hành mà phiên của bên gọi đã nắm giữ.
- Cấu hình (các 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 đáng tin cậy
Dịch vụ Gateway không chạy
Sử dụng khi dịch vụ đã được cài đặt nhưng tiến trình không tiếp tục hoạt động.Runtime: stoppedkèm gợi ý thoát.- Cấu hình dịch vụ không khớp (
Config (cli)so vớiConfig (service)). - Xung đột cổng/trình lắng nghe.
- Các bản cài đặt launchd/systemd/schtasks bổ sung khi sử 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 khắc phục: đặtgateway.mode="local"trong cấu hình của bạn hoặc chạy lạiopenclaw onboard --mode local/openclaw setupđể ghi lại cấu hình chế độ cục bộ dự kiến. 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→ liên kết 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 proxy đáng tin cậy khi được 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 chỉ nên duy trì một Gateway trên mỗi máy; nếu thực sự cần nhiều hơn một, hãy cô lập cổng + cấu hình/trạng thái/không gian làm việc. 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 thiếu dịch vụ cấp người dùng. Xóa 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à trình giám sát dự kiến.Gateway service port does not match current gateway config→ trình giám sát đã cài đặt vẫn ghim--portcũ. Chạyopenclaw doctor --fixhoặcopenclaw gateway install --force, sau đó khởi động lại dịch vụ Gateway.
Gateway trên macOS âm thầm ngừng phản hồi, rồi tiếp tục khi bạn tương tác với bảng điều khiển
Dùng khi các kênh (Telegram, WhatsApp, v.v.) trên máy chủ macOS im lặng từ vài phút đến vài giờ mỗi lần, và Gateway dường như hoạt động trở lại ngay khi bạn mở Control UI, đăng nhập qua SSH 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 trở lại.
- Một hoặc nhiều gói
*-uncaught_exception.jsontrong~/.openclaw/logs/stability/cóerror.codeđược đặt thành mã lỗi mạng tạm thời nhưENETDOWN,ENETUNREACH,EHOSTUNREACHhoặcECONNREFUSED. - Các dòng
pmset -g lognhưEntering Sleep state due to 'Maintenance Sleep'hoặcen0 driver is slow (msg: WillChangeState to 0)trùng với dấu thời gian xảy ra 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; mọiconnect()gửi đi rơi đúng vào khoảng thời gian đó đều có thể thất bạ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 runningcùng nhiềurunsgần đây và một 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 kéo dài khoảng một giờ thay vì vài giây. launchd của macOS áp dụng một cổng bảo vệ tái khởi chạy không được ghi trong tài liệu sau một loạt sự cố, có thể khiếnKeepAlive=truekhông còn được tuân thủ cho đế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 cổng này.
- Một gói ổn định có
error.codelàENETDOWNhoặc mã cùng nhóm, với ngăn xếp lệnh gọi trỏ vào NodenetlookupAndConnect/Socket.connect. OpenClaw2026.5.26trở lên phân loại các lỗi này là lỗi mạng tạm thời vô hại, vì vậy chúng không còn lan truyền đến trình xử lý ngoại lệ chưa được bắt ở cấp cao nhất; nếu đang dùng bản phát hành cũ hơn, hãy nâng cấp trước. - Các khoảng thời gian im lặng kéo dài kết thúc ngay khi bạn kết nối với Control UI hoặc đăng nhập vào máy chủ qua SSH: hoạt động mà người dùng nhìn thấy chính là yếu tố kích hoạt lại cổng tái khởi chạy của launchd, chứ không phải bất kỳ thao tác nào của bảng điều khiển đối với Gateway.
- Số đếm
runstăng dần trong ngày nhưng không có dòngreceived SIG*; shutting downtương ứng trong~/Library/Logs/openclaw/gateway.log: các lần tắt đúng cách ghi lại tín hiệu; các 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 dưới dạng cảnh báo thay vì chấm dứt tiến trình. -
Giảm hoạt động ngủ bảo trì trên Mac mini / máy tính để bàn được dùng làm máy chủ luôn bật:
Thao tác này làm giảm đáng kể nhưng không loại bỏ hoàn toàn hiện tượng chập chờn của trình điều khiển. Hệ thống vẫn có thể thực hiện một số lần ngủ bảo trì để duy trì TCP keepalive và mDNS bất kể các cờ này.
-
Thêm bộ giám sát tình trạng hoạt động để nhanh chóng phát hiện một loạt sự cố trong tương lai bị launchd giữ lại:
Mục đích là kích hoạt lại cổng tái khởi chạy từ bên ngoài; chỉ riêng
KeepAlive=truelà không đủ trên macOS sau một loạt sự cố.
Vòng lặp giám sát launchd của macOS với các LaunchAgent Gateway/Node trùng lặp
Dùng khi một bản cài đặt macOS liên tục khởi động lại sau mỗi vài giây, các bước kiểm tra tình trạngopenclaw dao động giữa khỏe mạnh và không khả dụng, đồng thời việc phân phối qua kênh bị đình trệ
mặc dù dịch vụ có vẻ đang chạy.
Hiện tượng này từng được ghi nhận trên các bản cài đặt cũ, nơi cả LaunchAgent ai.openclaw.gateway và
ai.openclaw.node đều đang hoạt động và mỗi LaunchAgent đều chèn
OPENCLAW_LAUNCHD_LABEL. Trong trạng thái đó, OpenClaw có thể phát hiện sự
giám sát của launchd, cố gắng chuyển quyền khởi động lại về cho launchd và rơi vào một vòng lặp
EADDRINUSE/tái khởi chạy nhanh thay vì duy trì một tiến trình Gateway ổn định.
- Nhiều hơn một PID Gateway trong mẫu 30 giây thay vì một tiến trình ổn định.
EADDRINUSE,another gateway instance is already listeninghoặc các dòng khởi động lại/chuyển giao lặp lại tronggateway.log.- Cả
~/Library/LaunchAgents/ai.openclaw.gateway.plistvà~/Library/LaunchAgents/ai.openclaw.node.plistđược tải cùng lúc trên một máy chủ vốn chỉ nên chạy một dịch vụ Gateway được quản lý.
-
Nếu máy chủ này chỉ nên chạy dịch vụ Gateway, hãy gỡ dịch vụ Node được quản lý
thông qua OpenClaw. Bỏ qua bước này nếu bạn đang chủ động phụ thuộc vào dịch vụ Node
cho các tính năng Node từ xa; việc gỡ cài đặt sẽ dừng các tính năng đó trên
máy chủ này:
-
Cài đặt một trình bao Gateway cố định để xóa các dấu hiệu launchd
được kế thừa trước khi khởi động OpenClaw. Sử dụng tùy chọn
--wrapperđược hỗ trợ; không chỉnh sửa tệp được tạo trong~/.openclaw/service-env/, vì việc cài đặt lại dịch vụ, cập nhật và sửa chữa bằng công cụ chẩn đoán sẽ tạo lại tệp đó:gateway installduy trì đường dẫn trình bao qua các lần cài đặt lại bắt buộc, cập nhật và sửa chữa bằng công cụ chẩn đoán. -
Xác minh rằng Gateway ổn định và đang phục vụ RPC, không chỉ đơn thuần lắng nghe:
Mẫu PID phải hiển thị một tiến trình ổn định thay vì một tập hợp PID luân phiên, và việc phân phối kênh đến phải tiếp tục.
-
Sau khi nâng cấp lên bản phát hành đã khắc phục vòng lặp hai LaunchAgent
nền tảng, hãy xóa giải pháp tạm thời và cài đặt lại dịch vụ được quản lý thông thường:
Gateway thoát khi mức sử dụng bộ nhớ cao
Dùng khi Gateway biến mất dưới tải, trình giám sát báo cáo khởi động lại kiểu OOM hoặc nhật ký đề cập đếncritical 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_thresholdhoặ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. - Các bộ đếm bộ nhớ cgroup của Linux khi Gateway chạy bên trong vùng chứa 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 đã ghi lại một gói ổn định trước OOM. Kiểm tra gói đó bằngopenclaw gateway stability --bundle latest.memory pressure: level=criticalxuất hiện trong nhật ký Gateway → OpenClaw đã phát hiện áp lực bộ nhớ nghiêm trọng và ghi lại các thông tin bộ nhớ trong tiến trình hiện có.Largest session files:trỏ đến một đường dẫn bản chép lời đã biên tập rất lớn → giảm lịch sử phiên được lưu giữ, kiểm tra mức tăng trưởng của phiên hoặc chuyển các bản chép lời cũ ra khỏi kho đang hoạt động trước khi khởi động lại.- Số byte đã dùng trong
V8 heap:gần với giới hạn heap → trước tiên hãy giảm áp lực từ lời nhắc/phiên hoặc giảm công việc đồng thời. Đối với dịch vụ được quản lý, hãy kiểm traGateway heap:trongopenclaw gateway status; nếu hiển thịnot set, hãy tạo lại siêu dữ liệu dịch vụ cũ bằngopenclaw gateway install --force.NODE_OPTIONScủa shell môi trường xung quanh được chủ ý bỏ qua. Chỉ sử dụng giá trị ghi đè heap rõ ràng ở cấp trình giám sát sau khi xác nhận khối lượng công việc duy trì và chừa đủ dung lượng bộ nhớ gốc. Memory pressure: critical/rss_growth→ bộ nhớ tăng nhanh trong một khoảng lấy mẫu. Kiểm tra nhật ký mới nhất để tìm một lượt nhập lớn, đầu ra công cụ mất kiểm soát, các lần thử lại lặp lại hoặc một lô công việc tác nhân đang xếp hàng.- Áp lực bộ nhớ nghiêm trọng xuất hiện trong nhật ký nhưng không có gói nào → ghi lại
openclaw gateway diagnostics exportsau sự kiện để thu thập bằng chứng vận hành hiện có.
Gateway từ chối cấu hình không hợp lệ
Dùng khi Gateway không thể khởi động vớiInvalid config hoặc nhật ký tải lại nóng cho biết một chỉnh sửa không hợp lệ đã bị bỏ qua.
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ị lỗi. - OpenClaw giữ lại 32 tệp
.clobbered.*mới nhất cho mỗi đường dẫn cấu hình và luân chuyển 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 bước xác thực trong khi khởi động, tải lại nóng hoặc ghi do OpenClaw quản lý.
- Quá trình khởi động Gateway dừng an toàn thay vì ghi lại
openclaw.json. - Tải lại nóng bỏ qua các chỉnh sửa bên ngoài không hợp lệ và tiếp tục duy trì cấu hình thời gian chạy hiện tại.
- Các thao tác ghi do OpenClaw quản lý từ chối tải trọng không hợp lệ/phá hủy trước khi commit và lưu
.rejected.*. openclaw doctor --fixchịu trách nhiệm sửa chữa. Công cụ này có thể xóa tiền tố không phải JSON hoặc khôi phục bản sao tốt gần nhất đã biết, đồng thời giữ lại tải trọng bị từ chối dưới dạng.clobbered.*.- Khi có nhiều lần sửa chữa đối với một đường dẫn cấu hình, OpenClaw luân chuyển các tệp
.clobbered.*cũ hơn để tải trọng được sửa chữa mới nhất vẫn còn khả dụng.
Kiểm tra và sửa chữa
Kiểm tra và sửa chữa
Các dấu hiệu thường gặp
Các 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ị lỗi trong khi sửa cấu hình đang hoạt động..rejected.*tồn tại → một thao tác ghi cấu hình do OpenClaw thực hiện đã không vượt qua bước kiểm tra schema hoặc ghi đè trước khi commit.Config write rejected:→ thao tác ghi đã cố loại bỏ cấu trúc bắt buộc, thu nhỏ tệp đáng kể 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 không vượt qua bước xác thực và bị Gateway đang chạy bỏ qua.Invalid config at ...→ quá trình khởi động thất bại trước khi các dịch vụ Gateway được khởi chạy.missing-meta-vs-last-good,gateway-mode-missing-vs-last-goodhoặcsize-drop-vs-last-good:*→ một thao tác ghi do OpenClaw thực hiện bị từ chối vì làm mất trường hoặc giảm kích thước so với bản sao lưu tốt gần nhất đã biết.Config last-known-good promotion skipped→ cấu hình đề xuất chứa các phần giữ chỗ cho bí mật đã được che, chẳng hạn như***.
Các tùy chọn khắc phục
Các tùy chọn khắc phục
- Chạy
openclaw doctor --fixđể doctor sửa cấu hình có tiền tố/bị ghi đè hoặc khôi phục bản tốt gần nhất đã biết. - Chỉ sao chép các khóa dự đị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 chỉnh sửa thủ công, hãy giữ nguyên toàn bộ cấu hình JSON5, không chỉ đối tượng một phần mà bạn muốn thay đổi.
Cảnh báo khi thăm dò Gateway
Dùng khiopenclaw gateway probe kết nối được đến một đích nào đó nhưng vẫn in ra một khối cảnh báo.
warnings[].codevàprimaryTargetIdtrong đầu ra JSON.- Cảnh báo có liên quan đến phương án dự phòng SSH, nhiều Gateway, thiếu phạm vi quyền hay tham chiếu xác thực chưa được phân giải hay không.
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 đích trực tiếp đã cấu hình/loopback.multiple reachable gateway identities detected→ các Gateway khác nhau đã phản hồi hoặc OpenClaw không thể chứng minh các đích có thể kết nối là cùng một Gateway. Một đường hầm SSH, URL proxy hoặc URL từ xa đã cấu hình trỏ đến cùng một Gateway được coi là một Gateway với nhiều phương thức truyền tải, ngay cả khi các cổng truyền tải khác nhau.Read-probe diagnostics are limited by gateway scopes (missing operator.read)→ kết nối thành công nhưng RPC chi tiết bị giới hạn phạm vi quyền; hãy ghép đôi 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 thành công nhưng toàn bộ tập RPC chẩn đoán đã hết thời gian chờ hoặc thất bại. Hãy xem đây là một Gateway có thể kết nối nhưng khả năng chẩn đoán bị suy giảm; so sánhconnect.okvàconnect.rpcOktrong đầu ra--json.Capability: pairing-pendinghoặcgateway closed (1008): pairing required→ Gateway đã phản hồi nhưng máy khách này vẫn cần ghép đôi/phê duyệt trước khi có quyền truy cập vận hành thông thường.- Nội dung cảnh báo SecretRef
gateway.auth.*/gateway.remote.*chưa được phân giải → dữ liệu xác thực không khả dụng trong đường dẫn lệnh này đối với đích bị lỗi.
Kênh đã kết nối nhưng thông báo không lưu chuyển
Nếu trạng thái kênh là đã kết nối nhưng luồng thông báo không hoạt động, hãy tập trung vào chính sách, quyền và các quy tắc phân phối dành riêng cho kênh.- Chính sách tin nhắn trực tiếp (
pairing,allowlist,open,disabled). - Danh sách cho phép của nhóm và yêu cầu đề cập.
- Thiếu quyền/phạm vi quyền API của kênh.
mention required→ thông báo bị bỏ qua theo chính sách đề cập trong nhóm.pairing/ dấu vết đang chờ phê duyệt → người gửi chưa được phê duyệt.missing_scope,not_in_channel,Forbidden,401/403→ sự cố xác thực/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, trước tiên hãy xác minh trạng thái bộ lập lịch, sau đó kiểm tra đích phân phối.- Cron đã bật và có lần đá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).
Các dấu hiệu thường gặp
Các dấu hiệu thường gặp
cron: scheduler disabled; jobs will not run automatically→ Cron đã bị tắt.cron: timer tick failed→ nhịp của bộ lập lịch thất bại; hãy kiểm tra lỗi tệp/nhật ký/runtime.heartbeat skippedvớireason=quiet-hours→ nằm ngoài khung giờ hoạt động.heartbeat skippedvớireason=empty-heartbeat-file→HEARTBEAT.mdtồn tại nhưng chỉ chứa nội dung trống, chú thích, tiêu đề, hàng rào hoặc khung danh sách kiểm tra trố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 nhịp này.heartbeat: unknown accountId→ ID tài khoản không hợp lệ cho đích phân phối Heartbeat.heartbeat skippedvớireason=dm-blocked→ đích Heartbeat được phân giải thành một đích kiểu tin nhắn trực tiếp trong khiagents.defaults.heartbeat.directPolicy(hoặc giá trị ghi đè theo tác nhân) được đặt thànhblock.
Node đã ghép đôi nhưng công cụ thất bại
Nếu một Node đã được ghép đôi nhưng các công cụ thất bại, hãy tách biệt trạng thái tiền cảnh, quyền và phê duyệt.- Node đang trực tuyến với các khả năng dự kiến.
- Quyền hệ điều hành dành cho camera/micrô/vị trí/màn hình.
- Trạng thái phê duyệt thực thi và danh sách cho phép.
NODE_BACKGROUND_UNAVAILABLE→ ứng dụng Node phải ở tiền cảnh.*_PERMISSION_REQUIRED/LOCATION_PERMISSION_REQUIRED→ thiếu quyền hệ điều hành.SYSTEM_RUN_DENIED: approval required→ phê duyệt thực thi đang chờ xử lý.SYSTEM_RUN_DENIED: allowlist miss→ lệnh bị danh sách cho phép chặn.
Công cụ trình duyệt thất bại
Dùng khi các thao tác của công cụ trình duyệt thất bại dù bản thân Gateway vẫn hoạt động bình thường.plugins.allowcó được đặt và có bao gồmbrowserhay không.- Đường dẫn tệp thực thi trình duyệt hợp lệ.
- Khả năng kết nối đến hồ sơ CDP.
- Chrome cục bộ có khả dụng cho các hồ sơ
existing-session/userhay không.
Dấu hiệu về Plugin / tệp thực thi
Dấu hiệu về 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 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→ không thể khởi chạy tiến trình trình duyệt.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 sử dụng một scheme không được hỗ trợ, chẳng hạn nhưfile:hoặcftp:.browser.cdpUrl has invalid port→ URL CDP đã cấu hình có cổng không hợp lệ hoặc nằm ngoài phạm vi.Playwright is not available in this gateway build; '<feature>' is unsupported.→ bản cài đặt Gateway hiện tại thiếu phần phụ thuộc runtime trình duyệt cốt lõi; hãy 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 màn hình 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 màn hình phần tử bằng bộ chọn CSS và xuất PDF vẫn không khả dụng.
Dấu hiệu về Chrome MCP / phiên hiện có
Dấu hiệu về Chrome MCP / phiên hiện có
Could not find DevToolsActivePort for chrome→ phiên hiện có của Chrome MCP chưa thể đính kèm vào thư mục dữ liệu trình duyệt đã chọn. Hãy mở trang kiểm tra trình duyệt, bật gỡ lỗi từ xa, giữ trình duyệt mở, phê duyệt lời nhắc đính kèm đầ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 browser tabs found for profile="user"→ hồ sơ đính kèm Chrome MCP không có tab Chrome cục bộ nào đang mở.Remote CDP for profile "<name>" is not reachable→ không thể kết nối đến điểm cuối CDP từ xa đã cấu hình từ máy chủ Gateway.Browser attachOnly is enabled ... not reachablehoặcBrowser attachOnly is enabled and CDP websocket ... is not reachable→ hồ sơ chỉ đính kèm không có đích nào có thể kết nối, hoặc điểm cuối HTTP đã phản hồi nhưng vẫn không thể mở WebSocket CDP.
Dấu hiệu về phần tử / ảnh chụp màn hình / tải lên
Dấu hiệu về 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 chụp màn hình đã kết hợp--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 chụp màn hình của Chrome MCP /existing-sessionphải dùng thao tác chụp trang hoặc một--refcủa ảnh chụp nhanh, không dùng--elementCSS.existing-session file uploads do not support element selectors; use ref/inputRef.→ các hook tải lên của Chrome MCP cần tham chiếu ảnh chụp nhanh, không phải bộ chọn CSS.existing-session file uploads currently support one file at a time.→ gửi một nội dung tải lên cho mỗi lệnh gọi trên các hồ sơ Chrome MCP.existing-session dialog handling does not support timeoutMs.→ các hook hộp thoại trên hồ sơ Chrome MCP không hỗ trợ ghi đè thời gian chờ.existing-session type does not support timeoutMs overrides.→ bỏ quatimeoutMschoact:typetrên các hồ sơ phiên hiện cóprofile="user"/ Chrome MCP, hoặc dùng hồ sơ trình duyệt được quản lý/CDP khi cần thời gian chờ 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ô.- Các giá trị ghi đè cũ về khung nhìn / chế độ tối / ngôn ngữ-vùng / ngoại tuyến trên hồ sơ chỉ đính kèm 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 sự cố đột ngột xuất hiện sau khi nâng cấp
Hầu hết sự cố sau khi nâng cấp là do cấu hình bị lệch hoặc các giá trị mặc định nghiêm ngặt hơn hiện đang được áp dụng.1. Hành vi xác thực và ghi đè URL đã thay đổi
1. Hành vi xác thực và ghi đè URL đã thay đổi
- Nếu
gateway.mode=remote, các lệnh gọi CLI có thể đang nhắm đến máy từ xa trong khi dịch vụ cục bộ vẫn hoạt động bình thường. - Các lệnh gọi
--urltường minh không dự phòng sang thông tin xác thực đã lưu.
gateway connect failed:→ đích URL không chính xác.unauthorized→ có thể truy cập điểm cuối nhưng xác thực không chính xác.
2. Các biện pháp bảo vệ cho liên kết và xác thực nghiêm ngặt hơn
2. Các biện pháp bảo vệ cho liên kết và xác thực nghiêm ngặt hơn
- Các liên kết không phải loopback (
lan,tailnet,custom) cần một đường dẫn xác thực Gateway hợp lệ: xác thực bằng token/mật khẩu dùng chung hoặc một triển khaitrusted-proxykhông phải loopback được cấu hình đúng. - Các khóa cũ như
gateway.tokenkhông thay thế chogateway.auth.token.
refusing to bind gateway ... without auth→ liên kết không phải loopback nhưng không có đường dẫn xác thực Gateway hợp lệ.Connectivity probe: failedtrong khi runtime đang chạy → Gateway đang hoạt động nhưng không thể truy cập bằng thông tin xác thực/URL hiện tại.
3. Trạng thái ghép nối và danh tính thiết bị đã thay đổi
3. Trạng thái ghép nối và danh tính thiết bị đã thay đổi
- Các phê duyệt thiết bị đang chờ xử lý cho bảng điều khiển/các Node.
- Các phê duyệt ghép nối tin nhắn trực tiếp đang chờ xử lý sau khi chính sách hoặc danh tính thay đổi.
device identity required→ chưa đáp ứng yêu cầu xác thực thiết bị.pairing required→ người gửi/thiết bị phải được phê duyệt.