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

Discord.py ping命令报400错误码50006无法发送空消息排查求助

问题诱因

这个报错是Discord API规则更新和Python SDK版本迭代共同导致的,核心原因如下:
Discord在2022年对消息接口做了强制限制:所有新发送、编辑后的消息,必须至少包含一项非空内容(文本内容content、嵌入消息embed、附件、贴纸四者其一),否则就会返回错误码50006的空消息错误。
你代码的触发点是:首次调用await ctx.send(embed=embed)时仅传递了embed参数,没有显式指定content参数,部分版本的Discord Python库(discord.py/nextcord/pycord等)在后续调用msg.edit()时,会将未显式传递的content默认置为空值,一旦编辑时传入的embed因为变量异常(比如colour取值无效、嵌入字段长度超限)被判定为空,就会触发该错误。

修复方案

按以下两处修改代码即可解决问题:

  1. 首次发消息时显式指定所有用到的参数,避免隐式空值问题:
# 显式声明content初始为空,避免后续编辑时SDK的隐式赋值
msg = await ctx.send(content="", embed=embed)
  1. 给最终编辑操作加兜底校验,确保至少有一个字段非空:
# 提前计算结果,避免f-string内运算出现异常空值
avg_ping = round((round(sum(times)) + round(bot.latency * 1000))/4)
await msg.edit(
    content=f":ping_pong: **{avg_ping if avg_ping is not None else 0}ms**",
    embed=embed
)

如果修改后仍然报错,可以检查全局colour变量的取值是否有效,建议直接给embed设置固定颜色值测试,比如把color=colour改成color=0x2ea7ff。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:12:03