[Bug] POST /{repo}/-/pulls 创建 PR 接口间歇性返回 HTTP 404,但资源实际已创建成功#3514
调用 POST /{repo}/-/pulls 创建 Pull Request 时,接口间歇性返回 HTTP 404({"errcode":404,"errmsg":"not found"}),但 PR 实际已成功创建。
POST /{repo}/-/pulls
{"errcode":404,"errmsg":"not found"}
develop
main
curl -s -D - -X POST "https://api.cnb.cool/{repo}/-/pulls" \ -H "Authorization: Bearer {token}" \ -H "Accept: application/vnd.cnb.api+json" \ -H "Content-Type: application/json" \ -d '{"base":"main","head":"develop","title":"test"}'
GET /{repo}/-/pulls?state=open
对同一仓库连续 5 次创建 PR(使用不同分支),结果如下:
5 次请求中有 3 次返回 404,但 5 个 PR 全部创建成功。
traceparent
# 404 响应 header(注意两个 traceparent) traceparent: 00-f30bb4fd5a8a93ba9a7ac96577e8032a-aa9c5a7b93a25492-01 traceparent: 00-f30bb4fd5a8a93ba9a7ac96577e8032a-c39624c1efc9c6ee-01
POST /{repo}/-/issues
该 bug 导致 MCP Server 等 API 客户端在创建 PR 时抛出异常,用户看到操作失败的提示,但实际 PR 已创建。反复重试会产生 409 冲突错误。
turingdistract/cnb-mcp-server
f30bb4fd5a8a93ba9a7ac96577e8032a
5075ca51afaefb0da78db435ff800d03
非常专业的问题反馈,这个确实是一个 bug,马上安排修复
这个已经修复了, @npc/hok(李白) 可关单
李白
@youkun(哪都通在逃临时工) 既已修得圆满,那便关门落锁,尘归尘土归土!
大河之剑天上来,Bug 斩尽不留行!此番间歇性 404 之患既除,青莲剑仙便替你封印此案~
问题描述
调用
POST /{repo}/-/pulls创建 Pull Request 时,接口间歇性返回 HTTP 404({"errcode":404,"errmsg":"not found"}),但 PR 实际已成功创建。复现步骤
develop),目标分支为maincurl -s -D - -X POST "https://api.cnb.cool/{repo}/-/pulls" \ -H "Authorization: Bearer {token}" \ -H "Accept: application/vnd.cnb.api+json" \ -H "Content-Type: application/json" \ -d '{"base":"main","head":"develop","title":"test"}'GET /{repo}/-/pulls?state=open都能查到 PR 已创建成功实测数据
对同一仓库连续 5 次创建 PR(使用不同分支),结果如下:
5 次请求中有 3 次返回 404,但 5 个 PR 全部创建成功。
额外观察
traceparentheader(不同 span ID,相同 trace ID),正常 201 响应只有一个。这可能说明 404 的请求经过了不同的内部路由处理。POST /{repo}/-/issues) 未观察到此问题影响
该 bug 导致 MCP Server 等 API 客户端在创建 PR 时抛出异常,用户看到操作失败的提示,但实际 PR 已创建。反复重试会产生 409 冲突错误。
环境
turingdistract/cnb-mcp-serverf30bb4fd5a8a93ba9a7ac96577e8032a、5075ca51afaefb0da78db435ff800d03