添加/poll命令后重启Discord机器人触发DiscordAPIError[30034]的原因与解决
问题解决:Discord机器人触发每日命令创建上限(实际命令数未达200)
问题场景
添加新的/poll命令后,每次重启机器人执行以下命令:
node deploy-commands.js && node stolas_bot.js
会触发Discord API错误:
Started refreshing 6 application (/) commands. DiscordAPIError[30034]: Max number of daily application command creates has been reached (200) at handleErrors (/home/Eth22/delivery/Discord Bot/stolas_bot_js/node_modules/@discordjs/rest/dist/index.js:640:13) at process.processTicksAndRejections (node:internal/process/task_queues:95:5) at async SequentialHandler.runRequest (/home/Eth22/delivery/Discord Bot/stolas_bot_js/node_modules/@discordjs/rest/dist/index.js:1021:23) at async SequentialHandler.queueRequest (/home/Eth22/delivery/Discord Bot/stolas_bot_js/node_modules/@discordjs/rest/dist/index.js:862:14) at async REST.request (/home/Eth22/delivery/Discord Bot/stolas_bot_js/node_modules/@discordjs/rest/dist/index.js:1387:22) at async /home/Eth22/delivery/Discord Bot/stolas_bot_js/deploy-commands.js:36:16 { requestBody: { files: undefined, json: [ [Object], [Object], [Object], [Object], [Object], [Object] ] }, rawError: { message: 'Max number of daily application command creates has been reached (200)', code: 30034 }, code: 30034, status: 400, method: 'PUT', url: 'https://discord.com/api/v10/applications/[token]/commands' }
实际命令总数远未到200条上限,却触发了每日创建次数限制。
解决办法
- 拆分启动流程:只在新增/修改/删除命令时,手动执行
node deploy-commands.js;平时重启机器人只运行node stolas_bot.js,避免每次重启都重复创建命令。 - 修改请求方式:错误中显示用了
PUT请求,该方式会全量覆盖现有命令,每次执行都相当于重新创建所有命令。改成PATCH增量更新,只推送变更的命令,减少API调用次数。 - 检查命令实际数量:登录Discord开发者门户,进入你的应用,在「Bot」→「Commands」查看全局命令总数;同时确认是否在多个服务器重复部署了命令,服务器命令的创建次数也会计入每日额度。
- 优化部署脚本:给脚本添加本地缓存逻辑,比如存储命令的哈希值,只有当命令内容发生变化时才向API发送请求,避免无意义的重复推送。
- 临时等待重置:Discord的每日额度会在UTC时间0点重置,若暂时无法修改脚本,可等次日再操作,但这只是临时方案。
内容的提问来源于stack exchange,提问作者Eth22
相关产品推荐
相关产品推荐

