Telegram机器人报TelegramConflictError,运行异常求助
解决Telegram机器人TelegramConflictError问题
核心原因
这个错误直接说明你的机器人有多个实例在同时运行,Telegram的getUpdates接口不允许同一个bot token被多个进程同时调用,否则会触发冲突,导致所有实例都无法正常获取更新,出现频繁中断的情况。
具体排查修复步骤
终止所有机器人进程
先彻底关掉所有正在运行的机器人相关进程,包括后台可能残留的进程:- 命令行启动的直接按
Ctrl+C终止; - 后台运行的(比如用
nohup、screen),用命令定位并杀死:# 查找进程(替换成你的机器人脚本名,比如bot.py) ps aux | grep bot.py # 杀死找到的进程,替换PID为查到的进程号 kill -9 PID - 用systemd等服务管理工具的,直接重启服务:
sudo systemctl restart your-bot-service
- 命令行启动的直接按
检查自动重启机制的问题
要是用了PM2、supervisor这类进程管理工具,可能是配置异常导致启动了多个实例:- 先查看实例列表,比如PM2:
pm2 list - 发现多实例就删除后重新启动:
pm2 delete your-bot-name pm2 start bot.py --name your-bot-name
- 先查看实例列表,比如PM2:
验证单实例运行
重新启动机器人后,立刻检查进程列表,确保只有一个机器人进程在跑。同时盯着控制台,确认不再出现TelegramConflictError,此时机器人应该能正常响应指令。避免后续重复踩坑
- 别手动多次启动机器人脚本;
- 用进程管理工具时,确保配置里设为单实例模式(比如PM2的
instances: 1); - 部署新版本时,先停旧实例再启动新实例,杜绝新旧实例同时运行。
内容的提问来源于stack exchange,提问作者DOOOOOOOM
相关产品推荐
相关产品推荐

