从真实客服记录整理出来的解法,让你五分钟内自己搞定。
OpenClaw 在 Zeabur 上跑得好好的,直到它突然不动了。
这不是假设情境。过去三周,我们处理了超过 40 张 OpenClaw 相关的支持单。有些问题五分钟就能自己解决,有些却让人卡了好几天。
这篇文章把最常见的问题整理出来,附上从真实案例中提炼的解法。下次遇到的时候,不用等客服回复。
| 症状 | 查看 |
|---|---|
| 服务显示 CRASHED,一直重启 | 问题一 |
| 服务卡在 STARTING,从来没变 RUNNING | 问题二 |
| Telegram bot 显示 typing 但不回复 | 问题三 |
| 想换模型但不知道怎么设置 | 问题四 |
| 打开网址看到 502 错误 | 问题五 |
| 浏览器工具说没启动 | 问题六 |
| 安装套件显示权限错误 | 问题七 |
openclaw gateway restart 出错 | 问题八 |
| 不知道配置文件在哪 | 问题九 |
| 手动改设置后崩溃 | 问题十 |
| 想升级 OpenClaw | 问题十一 |
| 升级后出问题 | 问题十一 |
| 想备份或还原数据 | 问题十二 |
| 升级 2026.2.17 后 Telegram 连不上 | 问题十三 |
Telegram 日志出现 409: Conflict | 问题十四 |
| 升级 2026.2.23 后 Web UI 打不开 | 问题十五 |
日志出现 Unrecognized key | 问题一 + 救援模式 |
No API key found for provider | 问题三 |
connection refused on port 18789 | 问题二 |
systemctl ENOENT | 问题八 |
不管你遇到什么崩溃问题,这套流程几乎都能救回来。先记住,后面会反复用到。
Gateway 崩溃时,打开服务网址会自动显示辅助页面,里面有错误记录和修复提示。
/home/node/.openclaw/openclaw.json 并修正问题服务恢复后,辅助页面会自动消失。
旧版没有辅助页面,需要手动进入容器修复。
sleep 3600,然后重新启动 — 这样容器会持续运行,让你有机会进去修东西/home/node/.openclaw/openclaw.json 并修正问题/opt/openclaw/startup.sh && /opt/openclaw/start_gateway.sh,然后重启服务想启用辅助页面?从 OpenClaw 模板重新部署即可。
这是目前最常见的问题,占了将近一半的支持单。
症状: 服务状态显示 CRASHED 或 CrashLoopBackOff,日志出现类似这样的错误:
Invalid config at /home/node/.openclaw/openclaw.json:
- gateway: Unrecognized key: "cool"
◇ Unknown config keys ─╮
│ │
│ - gateway.cool │
│ │
├───────────────────────╯
◇ Doctor ────────────────────────────────────────────╮
│ │
│ Run "openclaw doctor --fix" to remove these keys. │
│ │
├─────────────────────────────────────────────────────╯
Config invalid
File: ~/.openclaw/openclaw.json
Problem:
- gateway: Unrecognized key: "cool"
Run: openclaw doctor --fix原因: 配置文件里有 OpenClaw 不认识的 key。常见情境:手动编辑时加了不存在的字段、叫 OpenClaw 改设置但它改坏了、升级版本后旧的设置字段被弃用或改名。配置文件存在持久化存储里,读到不认识的 key 就直接拒绝启动。
解法:
情况 A:服务还能启动(日志有显示 Doctor 提示)
进入命令页签执行 openclaw doctor --fix,它会自动移除不认识的 key。
情况 B:服务已经崩溃,连 shell 都进不去
这是最常见的情况。用上面的救援模式进入容器,打开 /home/node/.openclaw/openclaw.json,对照日志里列出的 key(例如上面的 gateway.cool)把它删掉,然后重启服务。
症状: 服务一直显示 STARTING,从来没有变成 RUNNING。日志可能显示:
Startup probe failed: dial tcp 10.0.5.87:18789: connect: connection refused原因: OpenClaw 需要比较长的启动时间(有时超过 60 秒),默认的启动探针可能太急了。另一个常见原因是配置文件损坏(跟问题一一样)。
解法:
症状: Telegram 发消息给 bot,它显示 typing 但永远不回复,或直接没反应。
原因: 通常是 API Key 设置问题,或是模型连接失败。我们看过最常见的错误是 Key 和 Provider 不匹配。
解法:
确认环境变量设置正确:
ZEABUR_AI_HUB_API_KEY — 使用 Zeabur AI Hub 时ANTHROPIC_API_KEY — 直接使用 Claude 时OPENAI_API_KEY — 使用 OpenAI 时(也用于 Memory Search 和 TTS)到 Web UI 检查模型设置,确认选择的模型跟你的 API Key 匹配
设置环境变量后记得重启服务,不然不会生效
常见错误: 设置了 AI Hub Key 但 OpenClaw 默认尝试连 Anthropic,导致 No API key found for provider "anthropic"。确保 Provider 设置跟你的 Key 一致。
症状: 默认模型不够好用,想换成 Claude Sonnet 或其他模型。
解法:
如果使用 Zeabur AI Hub,可以在一把 Key 下切换多种模型:
claude-sonnet-4-6 — 推荐,平衡品质与速度claude-haiku-4-5 — 更快、更便宜gpt-5-mini — OpenAI 选项想用其他 Provider? 到环境变量页签加入对应的 API Key,重启服务后即可使用:
| Provider | 环境变量 |
|---|---|
| Zeabur AI Hub | ZEABUR_AI_HUB_API_KEY |
| OpenAI | OPENAI_API_KEY |
| Anthropic | ANTHROPIC_API_KEY |
| Google Gemini | GEMINI_API_KEY |
| xAI (Grok) | XAI_API_KEY |
| Mistral | MISTRAL_API_KEY |
| OpenRouter | OPENROUTER_API_KEY |
| Groq | GROQ_API_KEY |
| Moonshot (Kimi) | MOONSHOT_API_KEY |
| Z.AI (GLM) | ZAI_API_KEY |
更多 Provider 请参考 OpenClaw 官方文档。
症状: 打开 OpenClaw 的网址,看到 502 错误。
原因: 常见原因有三个:
18789)openclaw.json 后,OpenClaw 回退到默认设置,bind 变成 loopback,外部无法连线解法:
18789(跟环境变量 OPENCLAW_GATEWAY_PORT 一致)OPENCLAW_GATEWAY_BIND 的值是 lan(Zeabur 模板默认会设好,但如果手动删除或重置过可能会不见)openclaw.json 里的 gateway.bind,确保是 lan 而不是 loopback症状: 叫 OpenClaw 上网查资料或控制浏览器,它说浏览器没启动或无法使用,然后改用 Web Fetch。
原因: 在容器环境中,headless Chrome 需要额外的 sandbox 服务才能运作。单纯部署 OpenClaw 不会自动带浏览器。
解法:
部署 OpenClaw Sandbox Browser 模板,它会自动配好 headless Chrome。部署后需要在 OpenClaw 的 Config 里设置 remote Profile 指向 sandbox。
对于单纯读取网页内容(例如摘要文章),Web Fetch 通常就够用了,不一定需要完整的浏览器控制。
症状: 想让 bot 安装 pip、Homebrew 或其他工具,但显示权限错误。
原因: Zeabur 的 Docker 容器以非 root 用户(node)运行,无法直接安装系统级套件。Homebrew 在容器环境中也不可用。
解法: 这是设计上的取舍——容器隔离保护了你的数据安全。替代方案:
症状: 执行 openclaw gateway restart 出现:
Gateway service check failed: Error: systemctl --user unavailable: spawn systemctl ENOENT原因: 容器环境没有 systemd。
解法: 在 Zeabur 上不需要用 openclaw gateway restart。直接到 Dashboard 重启整个服务即可。
症状: 想手动编辑设置,但不知道文件在哪。
解法: 配置文件位于容器内的:
/home/node/.openclaw/openclaw.json你可以通过 Zeabur Dashboard 的文件或命令页签进去查看和编辑。
但建议优先使用 Web UI 的 Config 页面来修改设置,比较不容易打坏 JSON 格式。手动改坏 JSON 是造成问题一(崩溃)的常见原因之一。
方法一:Web UI(推荐)
使用 Web UI 的 Settings → Config 页面修改设置。它会帮你做格式验证,比较不容易打坏 JSON。
方法二:叫 OpenClaw 帮你改
直接在对话中告诉 OpenClaw 你想改什么设置,它可以帮你修改 openclaw.json。但要注意两件事:
claude-sonnet-4-6 或 gpt-5 以上的模型来操作设置方法三:手动编辑
/home/node/.openclaw/openclaw.json注意: 不管用哪种方式,都不要加 OpenClaw 不认识的 key,否则会触发问题一的崩溃。
正确做法:
2026.2.19 改为 2026.2.23升级前建议: 先到 Web UI 的 Config 页面把现有设置导出备份,以防新版本弃用了某些设置字段。
升级后注意: 新版本可能会变更或弃用某些设置字段,导致启动时出现 Unrecognized key 错误而崩溃。如果升级后服务起不来,参考问题一和救援模式的处理方式。
不要做的事:
ghcr.io/openclaw/openclaw 的东西openclaw update 或 npm i -g openclaw——这些是本地安装的升级方式,在 Zeabur 上改 image tag 就好latest 标签——服务重启时会自动拉取最新版本,可能在你不知情的情况下升级并出现问题。建议固定版本号(如 2026.2.23),需要升级时再手动更改Zeabur 有内建的备份功能,可以定期自动备份,建议先设置好。以下是手动备份的方式。
手动备份:
到 Zeabur Dashboard 的命令页签执行:
backup备份文件会产生在 /home/node/(例如 backup-1430.tar.gz),到文件页签找到文件,点右边的下载按钮存到电脑。
旧版没有 backup 命令的话:
cd /home/node && tar -czvf backup.tar.gz .openclaw还原:
/home/node/,点右上角上传按钮上传备份文件restore backup-1430.tar.gz如果是从 Zeabur Backup Service 产生的备份文件,加 --strip 2:
restore backup-xxxxx.tar.gz --strip 2什么时候该备份: 初始设置完成后、升级前、改大幅设置前。
症状: 升级到 2026.2.17 或更新版本后,Telegram bot 无法连线或不回应。
原因: 2026.2.17 版修改了网络连线的默认行为,在某些容器环境下会导致 Telegram API 连线失败。
解法:
到 Zeabur Dashboard 的环境变量页签,新增:
OPENCLAW_TELEGRAM_DISABLE_AUTO_SELECT_FAMILY=true重启服务即可。
症状: 日志不断出现以下错误,Telegram bot 完全没反应:
[telegram] getUpdates conflict: Call to 'getUpdates' failed! (409: Conflict: terminated by other getUpdates request; make sure that only one bot instance is running)原因: Telegram Bot API 有两种接收消息的方式:Polling(主动轮询)和 Webhook(Telegram 推送)。两者互斥,不能同时使用。
这个 409 错误代表这个 bot 之前被设置过 webhook,但现在 OpenClaw 尝试用 polling 方式接收消息,Telegram 拒绝了。常见原因:
解法:
到 Zeabur Dashboard 的命令页签,执行以下命令清除 webhook(把 <TOKEN> 换成你的 bot token):
curl https://api.telegram.org/bot<TOKEN>/deleteWebhook看到 {"ok":true,"result":true} 就代表清除成功。重启服务后 bot 就能正常接收消息了。
症状: 升级到 2026.2.23 后,打开 Web UI 出现空白页面或 CORS 错误,无法正常加载。
原因: 2026.2.23 开始强制检查 Control UI 的 allowedOrigins。在 Zeabur 上,用户的 domain 是动态生成的,Gateway 无法自动判断合法的 origin,导致请求被拒绝。
解法:
到 Zeabur Dashboard 的文件分页,编辑 /home/node/.openclaw/openclaw.json,在 gateway.controlUi 区块加入:
{
"gateway": {
"controlUi": {
"dangerouslyAllowHostHeaderOriginFallback": true
}
}
}重启服务即可。
如果服务已经崩溃进不去,用救援模式编辑设置文件。
如果以上都试过了还是不行:
如果这篇文章的内容有错误或过时,也欢迎到 Zeabur Forum 回报。