跳到主要内容

错误码

本页是 Otto 的权威错误码参考。每个错误码在 error 信封负载中发送。使用可重试列判断自动化重试是否安全;使用操作列进行即时修复。

认证错误​

码可重试操作
missing_access_token否在发送命令之前获取或配对令牌
invalid_access_token是使用 otto client login 刷新令牌,然后重连
role_mismatch否使用具有正确角色的令牌访问此端点
unauthenticated否发送命令前完成 hello → auth 握手
acl_missing_node_grant否在扩展弹窗中或通过 POST /api/controller/access 授予控制器对节点的访问权限

验证错误​

码可重试操作
missing_target_node否在每个命令信封中设置 targetNodeId
missing_tab_session否为标签页作用域命令提供 tabSessionId
invalid_command_input_type否将字段类型修改为声明的 inputFields 模式中的定义
missing_command_input否提供 inputFields 中声明的所有必填字段
missing_command_input_one_of否至少提供 inputAtLeastOneOf 列表中的一项字段
unexpected_command_input否移除 inputFields 中未声明的键

路由与执行错误​

码可重试操作
node_offline是重新解析已连接节点并重试
site_mismatch否将标签页导航到正确的站点,或使用 primitive.tab.open 重新打开
tab_url_not_ready是短暂延迟后重试;URL 尚未提交到 Chrome 标签页
preload_host_mismatch否验证 preloadHost 路径;检查站点重定向或拦截页
manual_login_required否在浏览器标签页中手动登录,然后重新运行命令
unknown_site否使用 otto commands list 检查支持的站点
unknown_command否使用 otto commands list --site <site> 检查可用命令
unknown_tab_session否使用 primitive.tab.open 重新打开受管理标签页

锁与超时错误​

码可重试操作
tab_busy是使用有界退避重试,或切换到 waitPolicy: wait_with_timeout
tab_locked是锁租约过期后重试
queue_wait_timed_out是增加 timeoutMs,或减少并发命令竞争
command_timed_out是增加 timeoutMs,或缩小命令操作范围
tab_queue_limit_exceeded是减少此标签页会话上的并发命令
rate_limited是降低命令吞吐率;检查中继 OTTO_RATE_LIMIT_PER_MIN 设置
replay_rejected否生成新的 replayNonce 和更新的 timestamp
timestamp_out_of_window否同步系统时钟;timestamp 必须在 OTTO_REPLAY_WINDOW_MS 的中继时间范围内
node_disconnected是中继在节点掉线时发出此信息;重连后重试

站点特定错误 (Reddit)​

码可重试操作
reddit_user_not_found否验证目标用户名或用户 ID
reddit_user_unmessageable否选择其他接收者
reddit_rate_limited是退避后重试
reddit_matrix_token_missing否重新认证 Reddit 页面会话
reddit_chat_send_unconfirmed否验证发送状态并重新运行命令

下一步​