--- summary: "连接但不交付的通道、cron 和心跳交付以及节点或浏览器工具故障" title: "渠道交付和工具" sidebarTitle: "渠道交付和工具" read_when: - "通道已连接但消息未流动" - "Cron 或心跳交付未到达" - "配对节点在工具调用时失败,或者浏览器工具失败" --- ## 通道已连接,但消息未流动 如果通道状态显示已连接但消息流停滞,请重点检查策略、权限和通道特定的投递规则。 ```bash openclaw channels status --probe openclaw pairing list --channel [--account ] openclaw status --deep openclaw logs --follow openclaw config get channels ``` 查看以下内容: - DM 策略(`pairing`、`allowlist`、`open`、`disabled`)。 - 群组 allowlist 和提及要求。 - 缺失通道 API permissions/scopes. 常见特征: - `mention required` → 消息因群组提及策略而被忽略。 - `pairing` / 待批准跟踪信息 → 发送方未获批准。 - `missing_scope`、`not_in_channel`、`Forbidden`、`401/403` → 频道 auth/permissions 问题。 相关: - [通道故障排除](/channels/troubleshooting) - [Discord](/channels/discord) - [电报](/channels/telegram) - [WhatsApp](/channels/whatsapp) ## Cron 和 heartbeat 投递 如果 cron 或 heartbeat 未运行或未投递,先验证调度器状态,再检查投递目标。 ```bash openclaw automations status openclaw automations list openclaw automations runs --limit 20 openclaw system heartbeat last openclaw logs --follow ``` 查看以下内容: - Cron 是否已启用,以及是否存在下一次唤醒时间。 - 任务运行历史状态(`ok`、`skipped`、`error`)。 - Heartbeat 跳过原因(`quiet-hours`、`requests-in-flight`、`cron-in-progress`、`alerts-disabled`、`empty-heartbeat-file`)。 - `cron: scheduler disabled; jobs will not run automatically` → cron 已禁用。 - `cron: timer tick failed` → 调度程序勾选失败;检查 file/log/runtime 错误。 - `heartbeat skipped` with `reason=quiet-hours` → 当前处于活跃时间窗口之外。 - `heartbeat skipped` 和 `reason=empty-heartbeat-file` → 心跳监视器暂存仅包含空行、注释、标题、代码围栏或空清单,因此 OpenClaw 会跳过模型调用。 - `heartbeat skipped` with `reason=no-route` → 默认的 `owner` 目标在 `commands.ownerAllowFrom` 或频道 `allowFrom` 中没有具体所有者,所有者无法解析为 DM,或未配置任何频道。显式的 `last` 还需要会话对话路由。 - `heartbeat: unknown accountId` → 心跳传送目标的帐户 ID 无效。 - `session event wake failed; no wake retry scheduled` → 唤醒以失败结束。错误日志记录其来源、意图、agent/session 目标、唤醒原因和错误。在请求另一次唤醒之前检查该会话并修复报告的原因;唤醒调度程序不会重播失败的回合,这些回合可能已经执行了工作。持久传递队列已保存的出站消息保留其单独的恢复策略。 - `heartbeat skipped` 与 `reason=dm-blocked` → 心跳目标解析为 DM- 样式目标,而 `agents.defaults.heartbeat.directPolicy`(或每个代理覆盖)设置为 `block`。 相关: - [心跳](/gateway/heartbeat) - [计划任务](/automation/cron-jobs) - [计划任务:故障排查](/automation/cron-jobs#troubleshooting)。 ## Node 已配对,工具失败 如果节点已配对但工具失败,请分别检查前台、权限和批准状态。 ```bash openclaw nodes status openclaw nodes describe --node openclaw approvals get --node openclaw logs --follow openclaw status ``` 查看以下内容: - Node 在线,具有预期功能。 - OS 授予 camera/mic/location/screen. 的权限 - 执行批准和 allowlist 状态。 常见特征: - `NODE_BACKGROUND_UNAVAILABLE` → 节点应用必须在前台运行。 - `*_PERMISSION_REQUIRED` / `LOCATION_PERMISSION_REQUIRED` → 缺少 OS 权限。 - `SYSTEM_RUN_DENIED: approval required` → 执行批准待处理。 - `SYSTEM_RUN_DENIED: allowlist miss` → 命令被 allowlist 阻止。 相关: - [执行批准](/tools/exec-approvals) - [节点故障排查](/nodes/troubleshooting) - [节点](/nodes/index)。 ## 浏览器工具失败 当浏览器工具操作失败,但网关本身正常时使用。 ```bash openclaw browser status openclaw browser start --browser-profile openclaw openclaw browser profiles openclaw logs --follow openclaw doctor ``` 查看以下内容: - `plugins.allow` 是否已设置并包含 `browser`。 - 浏览器可执行文件路径是否有效。 - CDP 配置文件是否可达。 - `existing-session` / `user` 配置文件的本地 Chrome 是否可用。 - `unknown command "browser"` or `unknown command 'browser'` → 捆绑的浏览器插件被 `plugins.allow` 排除了。 - Browser tool missing / unavailable while `browser.enabled=true` → `plugins.allow` 排除了 `browser`,因此插件从未加载。 - `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 端口无效或超出范围。 - `Playwright is not available in this gateway build; '' is unsupported.` → 当前网关安装缺少核心浏览器运行时依赖项;重新安装或更新OpenClaw,然后重新启动网关。 ARIA 快照和基本页面屏幕截图仍然可以工作,但导航、AI 快照、CSS-selector 元素屏幕截图和 PDF 导出仍然不可用。 - `Could not find DevToolsActivePort for chrome` → Chrome MCP existing-session 还无法附加到所选的浏览器数据目录。打开浏览器 inspect 页面,启用远程调试,保持浏览器打开,批准第一次附加提示,然后重试。如果不需要登录状态,优先使用受管理的 `openclaw` 配置文件。 - `No browser tabs found for profile="user"` → Chrome MCP 附加配置文件没有打开的本地 Chrome 标签页。 - `Remote CDP for profile "" is not reachable` → 配置的远程 CDP 端点从网关主机无法访问。 - `Browser attachOnly is enabled ... not reachable` or `Browser attachOnly is enabled and CDP websocket ... is not reachable` → 仅附加配置文件没有可访问的目标,或者 HTTP 端点已响应,但 CDP WebSocket 仍无法打开。 - `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`,而不是 CSS `--element`。 - `existing-session file uploads do not support element selectors; use ref/inputRef.` → Chrome MCP 上传钩子需要快照引用,而不是 CSS 选择器。 - `existing-session file uploads currently support one file at a time.` → 在 Chrome MCP 配置文件上,每次调用只能上传一个文件。 - `existing-session dialog handling does not support timeoutMs.` → Chrome MCP 配置文件上的对话框钩子不支持超时覆盖。 - `existing-session type does not support timeoutMs overrides.` → 在 `profile="user"` / Chrome MCP 现有会话配置文件上省略 `act:type` 的 `timeoutMs`,或者在需要自定义超时时使用 managed/CDP 浏览器配置文件。 - `response body is not supported for existing-session profiles yet.` → `responsebody` 仍然需要受管理浏览器或原始 CDP 配置文件。 - 连接附加模式或远程 CDP 配置文件上出现过期的视口 / 深色模式 / 语言环境 / 离线覆盖 → 运行 `openclaw browser stop --browser-profile ` 关闭当前控制会话,并释放 Playwright/CDP 模拟状态,而无需重启整个网关。 相关: - [浏览器(OpenClaw-托管)](/tools/browser) - [浏览器故障排查](/tools/browser-linux-troubleshooting)。