You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord机器人Slash命令报错40060:交互已被确认问题求助

解决Discord机器人DiscordAPIError[40060]错误

错误原因

报错Interaction has already been acknowledged表示同一个交互请求被多次确认/回复。Discord要求每个Slash命令交互只能被处理一次:要么用interaction.reply()直接回复,要么用interaction.deferReply()延迟回复后再用interaction.editReply()更新内容,重复调用回复方法就会触发这个错误,进而导致机器人崩溃。

定位问题

你的报错指向planning.js:56,说明问题出在/planning命令的代码里,而非你贴出的videoskip命令(该命令的if/else分支各调用一次reply,逻辑正常)。

修复步骤

  1. 检查planning.js第56行及附近代码:

    • 确认是否存在多次调用interaction.reply()的情况,比如条件分支重复回复、循环里触发回复
    • 检查是否在调用deferReply()之后,又误用reply()而非editReply()来更新消息
    • 确保所有异步操作都用await处理,避免代码未等回复完成就执行后续逻辑导致重复回复
  2. 添加重复回复防护:
    在执行回复前,先判断交互是否已被确认,避免重复操作,示例代码:

    if (!interaction.replied && !interaction.deferred) {
      await interaction.reply({ embeds: [yourEmbed] });
    } else if (interaction.deferred) {
      await interaction.editReply({ embeds: [yourEmbed] });
    }
    
  3. 全局错误捕获(防止机器人崩溃):
    在你的机器人入口文件(比如index.js)添加全局异常捕获,避免单个命令的错误导致整个机器人进程退出:

    process.on('unhandledRejection', (err) => {
      console.error('未处理的Promise拒绝:', err);
    });
    
    process.on('uncaughtException', (err) => {
      console.error('未捕获的异常:', err);
    });
    

额外注意

即使你没修改代码,也可能因为Discord API更新、依赖包版本变化(比如discord.js自动更新)或者异步逻辑的偶发触发导致这个问题,重点排查planning命令的回复逻辑即可。

内容的提问来源于stack exchange,提问作者Twizzyx

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 13:35:17