Khắc phục sự cố tự động hóa
Sử dụng trang này để giải quyết các vấn đề về lập lịch và gửi thông điệp (cron + heartbeat).
Lệnh kiểm tra
openclaw status
openclaw gateway status
openclaw logs --follow
openclaw doctor
openclaw channels status --probe
Sau đó, chạy kiểm tra tự động hóa:
openclaw cron status
openclaw cron list
openclaw system heartbeat last
Cron không kích hoạt
openclaw cron status
openclaw cron list
openclaw cron runs --id <jobId> --limit 20
openclaw logs --follow
Kết quả tốt sẽ như sau:
cron status báo cáo đã bật và có nextWakeAtMs trong tương lai.
- Công việc được bật và có lịch trình/múi giờ hợp lệ.
cron runs hiển thị ok hoặc lý do bỏ qua rõ ràng.
Các dấu hiệu thường gặp:
cron: scheduler disabled; jobs will not run automatically → cron bị tắt trong cấu hình/môi trường.
cron: timer tick failed → tick của scheduler bị lỗi; kiểm tra ngữ cảnh stack/log xung quanh.
reason: not-due trong kết quả chạy → chạy thủ công được gọi mà không có --force và công việc chưa đến hạn.
Cron kích hoạt nhưng không gửi thông điệp
openclaw cron runs --id <jobId> --limit 20
openclaw cron list
openclaw channels status --probe
openclaw logs --follow
Kết quả tốt sẽ như sau:
- Trạng thái chạy là
ok.
- Chế độ/đích gửi được thiết lập cho các công việc riêng lẻ.
- Kiểm tra kênh báo cáo kênh đích đã kết nối.
Các dấu hiệu thường gặp:
- Chạy thành công nhưng chế độ gửi là
none → không có thông điệp bên ngoài nào được mong đợi.
- Đích gửi thiếu/hỏng (
channel/to) → chạy có thể thành công nội bộ nhưng bỏ qua gửi ra ngoài.
- Lỗi xác thực kênh (
unauthorized, missing_scope, Forbidden) → gửi bị chặn bởi thông tin xác thực/quyền của kênh.
Heartbeat bị ngăn hoặc bỏ qua
openclaw system heartbeat last
openclaw logs --follow
openclaw config get agents.defaults.heartbeat
openclaw channels status --probe
Kết quả tốt sẽ như sau:
- Heartbeat được bật với khoảng thời gian khác 0.
- Kết quả heartbeat cuối cùng là
ran (hoặc lý do bỏ qua được hiểu rõ).
Các dấu hiệu thường gặp:
heartbeat skipped với reason=quiet-hours → ngoài activeHours.
requests-in-flight → làn chính bận; heartbeat bị hoãn.
empty-heartbeat-file → heartbeat theo khoảng thời gian bị bỏ qua vì HEARTBEAT.md không có nội dung hành động và không có sự kiện cron nào được xếp hàng.
alerts-disabled → cài đặt hiển thị ngăn chặn thông điệp heartbeat ra ngoài.
Lưu ý về múi giờ và activeHours
openclaw config get agents.defaults.heartbeat.activeHours
openclaw config get agents.defaults.heartbeat.activeHours.timezone
openclaw config get agents.defaults.userTimezone || echo "agents.defaults.userTimezone not set"
openclaw cron list
openclaw logs --follow
Quy tắc nhanh:
Config path not found: agents.defaults.userTimezone nghĩa là khóa chưa được đặt; heartbeat sẽ sử dụng múi giờ của máy chủ (hoặc activeHours.timezone nếu có).
- Cron không có
--tz sử dụng múi giờ của máy chủ gateway.
- Heartbeat
activeHours sử dụng độ phân giải múi giờ đã cấu hình (user, local, hoặc IANA tz cụ thể).
- Dấu thời gian ISO không có múi giờ được coi là UTC cho lịch trình
at của cron.
Các dấu hiệu thường gặp:
- Công việc chạy sai thời gian đồng hồ sau khi múi giờ máy chủ thay đổi.
- Heartbeat luôn bị bỏ qua trong giờ làm việc của bạn vì
activeHours.timezone sai.
Liên quan:
Lần sửa đổi cuối 22 tháng 3, 2026