微信里的Openclaw定时任务失效了!我是怎么解决这个问题的
你好,我是方可乐。 最近不是把OpenClaw接入到微信了嘛。然后我给它设置了一些定时任务。 一开始执行得挺准时的,但是我只看结果,没有去回复它,在我一两天没主动发消息给它后,它就开始不生效了。到时间都不发我。 我也有问过它,为什么定时任
最近不是把OpenClaw接入到微信了嘛。
然后我给它设置了一些定时任务。
一开始执行得挺准时的,但是我只看结果,没有去回复它,在我一两天没主动发消息给它后,它就开始不生效了。
到时间都不发我。 我也有问过它,为什么定时任务不执行了?
一时间它也给不出所以然。 离谱的是!!! 在我追问之后,这个定时任务竟然突然又好了。
这让我很懵。 坏得莫名其妙,恢复得莫名其妙?
于是我带着这个疑问,让龙虾服务器的Claude code分析微信这个渠道和相关日志,找到了答案。
核心问题在session-guard.ts:
WeChat 返回 errcode = -14 → pauseSession() → 所有API调用暂停1小时
具体链路:
1. monitor.ts 里有一个长轮询循环(getUpdates),持续和微信服务器保持会话
2. 如果微信服务器返回 -14(会话过期),插件立即 pauseSession()——这会阻止接下来1小时内所有发送
3. 1小时后自动解除暂停,但若微信侧的 session 已经彻底失效,下次轮询又会拿到 -14,再次暂停
而我的情况就是:
手机微信长期在后台、或没有从微信主动发过消息 → token 彻底失效
此时 getUpdates 长轮询持续拿到 -14,session 被永久 pause
但cron任务的lastRunStatus: ok 其实是任务执行层面的状态(AI 思考完成了),不代表消息真的送到了微信
所以只要我继续每天和龙虾聊天,我的微信渠道会话就不会过期。
还是要保持活跃度,不能摸鱼。
更多养虾问题,欢迎交流。