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

GitLab活动通知至Slack报错HTTP 500 missing_text_or_fallback_or_attachments

解决GitLab推送Slack时的HTTP 500 missing_text_or_fallback_or_attachments错误

这个错误我之前帮不少开发者排查过,核心问题很明确:Slack的Incoming Webhook要求请求 payload 必须包含text、fallback或attachments中的至少一个,而你的GitLab发送的请求里恰好都没满足。虽然旧集成正常,但新配置大概率是模板或触发事件的细节出了问题,咱们一步步来解决:

  • 检查GitLab的通知模板配置
    进入项目的Settings > Integrations > Slack,找到「Customize messages」区域。确认每个你启用的触发事件(比如Push、Merge Request、Issue等)的模板:

    • 如果用默认模板,确保{{ text }}这类核心变量没有被删除;
    • 如果是自定义JSON模板,必须明确包含text字段(比如{"text": "GitLab通知:{{ title }}"}),或者完整的attachments数组结构。
      有时候默认模板在某些边缘事件下可能生成空内容(比如某个事件的title为空),也会触发这个错误。
  • 验证测试请求的Payload内容
    点击GitLab集成页面的「Test」按钮发送测试请求,然后去Slack侧查看Webhook日志(路径:Settings > Manage apps > 找到你的GitLab集成 > Logs)。仔细检查测试请求的payload,确认是否真的缺失了三个必填字段中的任何一个。这一步能直接帮你定位是模板生成了空内容,还是配置漏了字段。

  • 对比旧集成的配置细节
    既然旧集成运行正常,把新配置和旧配置逐一对比:

    • 触发事件的勾选是否一致?有没有新增了旧集成没用到的事件,而这些事件的模板没配置好?
    • 模板内容是否完全一致?有没有不小心修改了旧模板里的关键变量?
    • Slack的Webhook URL是否完全复制正确?(虽然你说端点正确,但偶尔会出现复制时多了空格或字符的情况)
  • 用极简Payload做测试验证
    可以在GitLab的Webhook配置里临时替换成一个极简的测试payload,比如:

    {"text": "测试GitLab到Slack的通知"}
    

    点击测试,如果能成功推送到Slack,那就百分百确定是原来的模板有问题,再针对性调整模板内容即可。

这个错误本质就是Slack拒收了不符合格式规范的请求,只要盯紧payload里的三个必填字段,很快就能解决问题。

内容的提问来源于stack exchange,提问作者tsogtgerel.ts

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:12:47