这次问题的前因后果是这样的:
我一开始遇到的是:给 OpenClaw 的 Telegram 机器人发图片,会提示Failed to download media. Please try again.
排查后发现,核心不是模型能力,而是网络解析链路:
• curl -4 https://api.telegram.org 是通的(返回 302,正常)
• 但系统首选 DNS 仍是 198.18.0.2(fake-ip 环境)
之后我按你之前给的调整方案去改,在这个过程中才出现了这些报错:
• setMyCommands failed: Network request ... failed
• deleteWebhook failed: Network request ... failed
• deleteMyCommands failed: Network request ... failed
也就是说:这些错误是“执行修复步骤时触发的网络副作用”,不是最初就一直反复发生的原始现象。
───
最终采用了更稳、影响更小的修复方式:
只给 http://telegram.org 配“域名专用 DNS”,不改全局 DNS、不改 hosts。
sudo mkdir -p /etc/resolver
printf "nameserver 8.8.8.8\nnameserver 1.1.1.1\n" | sudo tee /etc/resolver/telegram.org >/dev/null
sudo dscacheutil -flushcache
sudo killall -HUP mDNSResponder
验证:
dscacheutil -q host -a name
http://api.telegram.org
结果应为公网 IP(不是 198.18.x.x)。
然后重启服务并验证 Bot API:
openclaw gateway restart
curl -4 --max-time 10
https://api.telegram.org/bot<TOKEN>/getMe
curl -4 --max-time 10
https://api.telegram.org/bot<TOKEN>/deleteWebhook
当返回 {"ok":true,...} 后,收图恢复正常。
───
一句话总结:
问题本质是 fake-ip DNS 环境下的 Telegram API 解析/链路异常;中途按修复步骤会触发命令同步报错;最终通过“域名专用 DNS”稳定解决。
然后看了看我的token消耗还可以,可以接受。#大漠茶馆 #OPENCLAW