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

Discord.js注册斜杠命令报错50035:应用命令名称需唯一

Discord.js 斜杠命令注册报50035 Invalid Form Body 修复方案

该报错和线上已有全局命令无关,冲突来自本次提交的待注册命令列表本身,结合贴出的代码和目录结构,按以下步骤排查修复:

1. 修复路径大小写不匹配问题

命令存储文件夹名为大写开头的Commands,但部署脚本中写的读取路径为全小写的commands:

// 原错误代码
const commandsPath = path.join(__dirname, 'commands');
  • Windows、macOS默认文件系统大小写不敏感,该行代码不会直接抛路径不存在的错误,但可能出现重复加载文件、命令数据异常的问题
  • 部署到Linux环境(大小写敏感)时会直接抛出路径不存在错误

直接修改路径和实际文件夹名完全一致即可:

const commandsPath = path.join(__dirname, 'Commands');

2. 排查待提交命令列表内部重名/非法项

查询到线上全局命令返回为空,说明重名冲突出现在本地待提交的8个命令数据中,排查方式:

  • 在命令加载循环中增加日志打印,直接输出所有待注册命令的名称和来源文件,快速定位重复项:
for (const file of commandFiles) {
    const filePath = path.join(commandsPath, file);
    const command = require(filePath);
    const cmdJson = command.data.toJSON();
    // 新增打印逻辑
    console.log(`已加载命令:${cmdJson.name},来源文件:${file}`);
    commands.push(cmdJson);
}
  • 逐文件检查命令配置,确保符合Discord命令规则:
    • 所有命令的name字段全局唯一,无重复
    • 命令名全为小写、无空格、无特殊符号,长度在1-32字符范围内
    • 子命令、子命令组的名称不与主命令或其他子命令重名
  • 如果打印出的命令总数超过Commands文件夹下的js文件总数,说明存在重复加载,修复路径大小写问题后即可解决。

验证步骤

修复后先执行脚本查看打印日志,确认命令数量和文件数一致、无重名,再执行部署请求即可正常注册。

提示:全局斜杠命令注册后Discord侧有最长1小时的缓存延迟,如果需要即时调试,可改用公会命令路由Routes.applicationGuildCommands(clientId, 测试服务器ID),公会命令更新后即时生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 18:27:25