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

Nextcord命令名称无效错误排查求助

Nextcord 命令同步报错:命令名称无效

报错信息

Ignoring exception in on_guild_available
Traceback (most recent call last):
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python312\Lib\site-packages\nextcord\client.py", line 497, in _run_event
    await coro(*args, **kwargs)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python312\Lib\site-packages\nextcord\client.py", line 2567, in on_guild_available
    await self.sync_application_commands(
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python312\Lib\site-packages\nextcord\client.py", line 2350, in sync_application_commands       
    await self._connection.sync_application_commands(
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python312\Lib\site-packages\nextcord\state.py", line 802, in sync_application_commands
    await self.register_new_application_commands(data=data, guild_id=guild_id)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python312\Lib\site-packages\nextcord\state.py", line 1003, in register_new_application_commands
    await self.register_application_command(app_cmd, guild_id)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python312\Lib\site-packages\nextcord\state.py", line 1038, in register_application_command     
    raise e
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python312\Lib\site-packages\nextcord\state.py", line 1030, in register_application_command
    raw_response = await self.http.upsert_guild_command(
                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python312\Lib\site-packages\nextcord\http.py", line 399, in request
    raise HTTPException(response, data)
nextcord.errors.HTTPException: 400 Bad Request (error code: 50035): Invalid Form Body
In options.0.options.1.name: Command name is invalid

问题背景

已知报错源于名称不符合^[\w-]{1,32}$正则规则,但对正则不熟悉。相关代码如下:

# modlink (link/unlink/purgeall)
@client.slash_command(guild_ids=serverids,description="Link/Unlink mods ids from the reports section. (Manager Only)")
async def mod(interaction: Interaction):
    pass
@mod.subcommand(description="Links/Adds their mod in-game id's to their discord UserID. (Manager Only)")
async def add(interaction: Interaction, target: nextcord.User, ingameID: str):
    if check_manager(interaction.user.id) == True:
        print("test")
    else:
        await interaction.response.send_message(f"{interaction.user.mention}",embed=prefabembeds.NoManagerPerms)
        print(f"~$- log: (failed) modlink add (target: [{target}, {target.id}], ingameID: {ingameID}), user: [{interaction.user.id}, {interaction.user}]")

已尝试修改装饰器参数和函数名重命名命令,问题仍未解决。

问题分析与解决方案

正则规则通俗解释

^[\w-]{1,32}$ 实际要求:

  • 只能用小写英文字母、数字、下划线、连字符
  • 长度在1-32字符之间
  • 不能含空格、大写字母、特殊符号(如中文、引号等)

错误定位

报错里的options.0.options.1.name指向的是命令参数名称,而非命令本身。你的代码中参数ingameID包含大写字母(I、D),违反了Discord应用命令的参数命名规则。

修改方案

将参数名改为全小写格式,比如ingame_id或ingameid,修改后的代码示例:

# modlink (link/unlink/purgeall)
@client.slash_command(guild_ids=serverids,description="Link/Unlink mods ids from the reports section. (Manager Only)")
async def mod(interaction: Interaction):
    pass
@mod.subcommand(description="Links/Adds their mod in-game id's to their discord UserID. (Manager Only)")
async def add(interaction: Interaction, target: nextcord.User, ingame_id: str):
    if check_manager(interaction.user.id) == True:
        print("test")
    else:
        await interaction.response.send_message(f"{interaction.user.mention}",embed=prefabembeds.NoManagerPerms)
        print(f"~$- log: (failed) modlink add (target: [{target}, {target.id}], ingameID: {ingame_id}), user: [{interaction.user.id}, {interaction.user}]")

额外提醒

  • 所有命令参数的名称都需符合上述规则,包括子命令参数
  • 命令名称(主命令、子命令)同样要遵守规则,但你的代码中mod和add是合规的

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 14:43:26