【OpenClaw】启动报错 disconnected (1008): unauthorized: gateway token mismatch

【OpenClaw】启动报错 disconnected (1008): unauthorized: gateway token mismatch


📑 文章目录

  1. 一、问题现象
  2. 二、错误原因分析
  3. 三、快速修复(60 秒)
  4. 四、Docker 用户特别注意
  5. 五、彻底修复(停止 → 清除 → 重启)
  6. 六、易混淆错误辨析
  7. 七、常用命令速查表
  8. 八、总结

一、问题现象

OpenClaw 启动后,控制台输出以下报错信息:

disconnected (1008): unauthorized: gateway token mismatch (open the dashboard URL and paste the token in Control UI settings) 

该错误属于 WebSocket 握手阶段的认证失败,错误码 1008 是 WebSocket 协议中定义的 “Policy Violation”,表示服务端因策略原因主动拒绝连接。


二、错误原因分析

当客户端(CLI、远程节点或 Control UI 浏览器)连接到 Gateway 时,会在握手阶段携带一个 Token。Gateway 会将该 Token 与自身配置中的 gateway.auth.token 进行比对。一旦不匹配,Gateway 将立即拒绝 WebSocket 连接,返回 1008 错误。

常见导致 Token 不匹配的场景:

  • 🔄 Gateway 重启后生成了新的 Token,但客户端仍使用旧 Token
  • 🌐 通过浏览器收藏夹/旧标签页访问 Dashboard(URL 中不含最新 Token)
  • 📝 手动修改了配置文件中的 auth.token,但未同步更新 remote.token
  • 🐳 Docker 环境变量静默覆盖了挂载配置文件中的 Token 值

三、快速修复(60 秒)

方法一:重新打开带 Token 的 Dashboard URL

如果你是通过浏览器的旧标签页或直接访问 http://127.0.0.1:18789/ 打开的 Dashboard,那么浏览器不会携带当前有效的 Token。

修复步骤:

# 方式 1:自动打开浏览器 openclaw dashboard # 方式 2:仅输出 URL,手动复制到浏览器 openclaw dashboard --no-open 
⚠️ 安全提示

请勿收藏带 Token 的 Dashboard URL!Token 应当被视为密码,每次通过命令获取即可。

方法二:对齐配置文件中的 Token

打开配置文件 ~/.openclaw/openclaw.json,重点关注以下两个字段:

{"gateway":{"auth":{"token":"my-secret-token"// ← Gateway 服务端使用},"remote":{"url":"ws://localhost:18789","token":"my-secret-token"// ← 客户端使用(必须与上面一致!)}}}

确认 auth.tokenremote.token 的值完全一致。如果不同,使用以下命令同步:

# 将 remote.token 设置为与 auth.token 一致 openclaw config set gateway.remote.token "YOUR_AUTH_TOKEN_HERE"# 重启 Gateway 使配置生效 openclaw gateway restart 

方法三:使用自动诊断修复

OpenClaw 内置了诊断工具,可以自动检测并修复大多数配置问题(包括 401 Unauthorized、429 Rate Limit Exceeded、Token Mismatch 等):

openclaw doctor --fix
推荐

如果你不确定问题根因,优先尝试 openclaw doctor --fix,它能覆盖大部分常见配置错误。

四、Docker 用户特别注意

在 Docker 中运行 OpenClaw 时,docker-compose.ymldocker run 命令中设置的 环境变量会静默覆盖挂载配置文件中的值。这意味着:即使 ~/.openclaw/openclaw.json 中的 Token 是正确的,一个过时的 OPENCLAW_GATEWAY_TOKEN 环境变量也会导致持续报错,且常规排查无效。

🔍 排查方法

# 进入容器查看所有 OpenClaw 相关环境变量dockerexec<container_name>env|grep OPENCLAW 

如果输出中出现 OPENCLAW_GATEWAY_TOKEN,且其值与配置文件中的 gateway.auth.token 不一致 —— 这就是问题所在

🛠️ 修复方法

docker-compose.yml 中更新或删除该环境变量:

# docker-compose.ymlservices:openclaw:image: openclaw:latest environment:# 方案 A:更新为正确的 Token- OPENCLAW_GATEWAY_TOKEN=正确的Token值 # 方案 B:直接删除此行,让配置文件生效# - OPENCLAW_GATEWAY_TOKEN=xxx ← 删除此行

修改完成后重启容器:

docker compose down &&docker compose up -d

五、彻底修复(停止 → 清除 → 重启)

如果以上快速修复方法都不奏效,可以执行完整的 Token 重置流程:

① 停止 Gateway → ② 清除旧 Token → ③ 启动 Gateway → ④ 重连 Agent 

Step 1:停止 Gateway 并确认已停止

# 原生部署 openclaw gateway stop ps aux |grep openclaw # Docker 部署docker compose stop dockerps|grep openclaw 

Step 2:清除旧 Token

删除每个 Agent 的 auth.json 文件中的 token 值。

注意

只删除 auth.json 中的 token 值,不要删除整个文件

Step 3:重新启动 Gateway

Gateway 在启动时会自动生成新的 Token。

openclaw gateway start 

Step 4:重新连接所有 Agent

Agent 首次连接时会自动获取并保存新 Token,无需手动操作。

💡 Docker 用户提示

日常重启推荐使用 docker compose restart;仅在需要全新容器状态时才使用 docker compose down && docker compose up -d

六、易混淆错误辨析

请注意区分以下两种 Token Mismatch 错误,它们的修复方式完全不同:

对比项Gateway Token MismatchDevice Token Mismatch
认证对象Agent → Gateway 的连接浏览器 / Control UI 会话
涉及配置gateway.auth.tokendevice.token
典型场景Gateway 重启、配置不同步更换浏览器、清除 Cookie
修复方式对齐 auth.token 和 remote.token重新打开 Dashboard URL

七、常用命令速查表

场景命令
🔧 自动诊断修复openclaw doctor --fix
🔑 查看当前 Gateway Tokenopenclaw config get gateway.auth.token
🔄 重新生成 Tokenopenclaw doctor --generate-gateway-token
🌐 打开带 Token 的 Dashboardopenclaw dashboard --no-open
📝 同步 Remote Tokenopenclaw config set gateway.remote.token "TOKEN"
♻️ 重启 Gatewayopenclaw gateway restart

八、总结

disconnected (1008): gateway token mismatch 错误的本质是 客户端与服务端持有的 Token 不一致。绝大多数情况下,通过以下三步即可快速解决:

  1. 首先尝试 openclaw doctor --fix 自动修复;
  2. 如未解决,检查配置文件中 auth.tokenremote.token 是否一致;
  3. Docker 用户额外检查环境变量 OPENCLAW_GATEWAY_TOKEN 是否存在覆盖。

如果上述方法均无效,执行完整的「停止 → 清除 → 重启」流程即可彻底解决。


🎉 希望本文对你有帮助!

如果解决了你的问题,请点赞 👍 收藏 ⭐ 关注 🔔,你的支持是我持续输出的动力!有问题欢迎在评论区留言交流~

Read more

深度解析个人AI助手OpenClaw:从消息处理到定时任务的全流程架构

深度解析个人AI助手OpenClaw:从消息处理到定时任务的全流程架构

在人工智能快速普及的当下,个人AI助手已经逐渐渗透到我们的工作和生活中,它们能够跨平台接收消息、智能处理需求、执行指定任务,成为提升效率的重要工具。OpenClaw作为一款功能强大的个人AI助手,凭借其灵活的渠道适配、完善的路由机制、强大的Agent能力以及可靠的定时任务系统,在众多AI助手中脱颖而出。很多开发者在使用OpenClaw时,都会好奇其背后的运行逻辑:当我们在WhatsApp、Discord等平台发送消息时,OpenClaw是如何捕捉到这些消息的,又是如何一步步处理并给出回复的;Web UI端的消息传递和外部渠道有何不同;Pi Agent如何调用大语言模型(LLM)和执行本地命令;定时任务从创建到结束的完整生命周期又包含哪些环节。今天,我们就结合OpenClaw的源代码,对这些核心功能模块进行全面且深入的解析,带你走进这款个人AI助手的底层架构,读懂每一个流程背后的技术实现。 OpenClaw的整体架构遵循“模块化设计、统一化管理”的理念,无论是消息处理、Agent执行还是定时任务,都有清晰的模块划分和明确的流程逻辑,这不仅保证了系统的稳定性和可扩展性,也让开发者能够快速

By Ne0inhk
2026 年企业级 AI Agent 终极架构蓝图:从聊天机器人到智能自动化的全栈工程化落地

2026 年企业级 AI Agent 终极架构蓝图:从聊天机器人到智能自动化的全栈工程化落地

2026 年,AI Agent 已经彻底告别了概念炒作的蛮荒期,全面进入企业级规模化落地的深水区。但行业里始终存在一个致命的认知误区:太多团队把 AI Agent 等同于 “大模型 + 提示词”,觉得只要接入了 GPT、Claude 这类 LLM,就能做出能落地的 Agent。最终的结果往往是:demo 跑得通,一到生产环境就频繁失控、幻觉频发、越权操作、无法处理复杂业务流程,永远停留在玩具阶段。 事实上,AI Agent 的核心从来不是 LLM 本身,而是一套完整的、全链路的编排、推理、执行、安全架构体系。LLM 只是 Agent 的 “大脑皮层”,而一个能真正在企业生产环境中稳定运行的 Agent,需要完整的感官系统、记忆系统、决策系统、执行系统与免疫系统。

By Ne0inhk

PostgreSQL 高可用集群部署指南

PostgreSQL 高可用集群部署指南 概述 本指南基于 Patroni + etcd 方案,提供完整的 PostgreSQL 高可用集群部署流程。该方案支持自动故障转移、读写分离、负载均衡等功能,确保数据库的高可用性和可扩展性。 架构组件 * PostgreSQL 12.17: 核心数据库 * Patroni: 集群管理和自动故障转移 * etcd: 分布式键值存储,作为集群状态存储 * HAProxy: 负载均衡器和读写分离 * Keepalived: 虚拟IP漂移和高可用 集群规划 本部署使用 3 节点架构: * node1: 192.168.95.139 * node2: 192.168.95.140 * node3: 192.168.95.141 环境准备 1. 系统要求

By Ne0inhk
【Redis】从单机架构到分布式,回溯架构的成长设计美学

【Redis】从单机架构到分布式,回溯架构的成长设计美学

前言 🌟🌟本期讲解关于分布式架构的发展相关知识介绍~~~ 🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-ZEEKLOG博客 🔥 你的点赞就是小编不断更新的最大动力                                        🎆那么废话不多说直接开整吧~~   目录 📚️1.单机架构 📚️2.应用服务于数据库分离 📚️3.引入负载均衡 📚️4.数据读写分离 📚️5.引入缓存 📚️6.分库分表 📚️7.微服务架构 📚️8.总结   📚️1.单机架构 所谓的单机架构,其实就是一台服务器完成所有的工作,包括业务处理,数据库数据存储等等 大致如下所示: 应用服务主要负责我们业务处理,而数据库主要负责存储数据,那么这就是一个比较基础的单体架构; 那么单体架构已经被淘汰了吗? 1、当然没有,随着计算机的快速的发展,硬件以发展非常快,那么一台主机就能够处理极高的并发,以及存储大量的数据; 2、并且单体架构对于分布式来说,系统的复杂程度大大下降,方便开发; 但是日益增长的请求和访问量,单体架构无法

By Ne0inhk