Skip to content

fix(mcp): 将 mcp server连接失败的真实原因传递给下游 error_message - #413

Open
openjiuwen-sync-bot[bot] wants to merge 1 commit into
openJiuwen-ai:developfrom
openjiuwenai:sync/pr-2247
Open

fix(mcp): 将 mcp server连接失败的真实原因传递给下游 error_message#413
openjiuwen-sync-bot[bot] wants to merge 1 commit into
openJiuwen-ai:developfrom
openjiuwenai:sync/pr-2247

Conversation

@openjiuwen-sync-bot

@openjiuwen-sync-bot openjiuwen-sync-bot Bot commented Aug 8, 2026

Copy link
Copy Markdown
Contributor

Paired: GitHub #413GitCode !2247

What type of PR is this?

/kind

Self-checklist:(请自检,在[ ]内打上x,我们将检视你的完成情况,否则会导致pr无法合入

    • 设计:PR对应的方案是否已经经过Maintainer评审,方案检视意见是否均已答复并完成方案修改
    • 测试:PR中的代码是否已有UT/ST测试用例进行充分的覆盖,新增测试用例是否随本PR一并上库或已经上库
    • 验证:PR描述信息中是否已包含对该PR对应的Feature、Refactor、Bugfix的预期目标达成情况的详细验证结果描述
    • 接口:是否涉及对外接口变更,相应变更已得到接口评审组织的通过,API对应的注释信息已经刷新正确
    • 文档:是否涉及官网文档修改,如果涉及请及时提交资料到Doc仓

Linked Closing Issues:

@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@openjiuwen-sync-bot openjiuwen-sync-bot Bot changed the title fix(runner): coerce MCP connect cancel/group errors into BaseError and re-raise SystemExit fix(runner): coerce MCP connect cancel/group errors into BaseError Aug 8, 2026
@openjiuwen-collaboration-bot

Copy link
Copy Markdown

head_sha: eaae3455c877a0a59d6b7897e6e91b7360812361

任务名称 结果 日志操作
静态检查 ❌FAILED 点此跳转
防投毒检查 ✅SUCCESS 点此跳转
开源合规检查 ✅SUCCESS 点此跳转
UT测试 ❌FAILED 点此跳转
ST测试 N/A N/A
build 编译包 N/A N/A
ruff codecheck ✅SUCCESS N/A

@openjiuwen-collaboration-bot

Copy link
Copy Markdown

head_sha: eaae3455c877a0a59d6b7897e6e91b7360812361

任务名称 结果 日志操作
静态检查 ✅SUCCESS 点此跳转
防投毒检查 ✅SUCCESS 点此跳转
开源合规检查 ✅SUCCESS 点此跳转
UT测试 ✅SUCCESS 点此跳转
ST测试 N/A N/A
build 编译包 N/A N/A
ruff codecheck ✅SUCCESS N/A

@openjiuwen-collaboration-bot

Copy link
Copy Markdown

head_sha: b71baaf0be7660723eaec43a85f0d357ee33322f

任务名称 结果 日志操作
静态检查 ✅SUCCESS 点此跳转
禁用词扫描 N/A N/A
防投毒检查 ✅SUCCESS 点此跳转
开源合规检查 ✅SUCCESS 点此跳转
UT测试 ✅SUCCESS 点此跳转
ST测试 N/A N/A
build 编译包 N/A N/A
ruff codecheck ✅SUCCESS N/A

@openjiuwen-sync-bot openjiuwen-sync-bot Bot changed the title fix(runner): coerce MCP connect cancel/group errors into BaseError fix(mcp): 将 mcp server连接失败的真实原因传递给下游 error_message Aug 13, 2026
add_tool_server 此前对连接失败的可观测性不足,失败原因到不了
Error.error_message:

1. connect() 返回 False 时只抛空 reason 的 BaseError,真实异常丢失。
   现在让各 McpClient 记录 _last_connect_error,add_tool_server 读取
   它填入 CONNECTION_ERROR 的 reason。该自产 BaseError 在 except
   BaseException 入口即放行,避免被重包成 ADD_ERROR 而语义降级、
   异常类型被埋进嵌套 message。

2. connect/list_tools 抛裸 CancelledError(MCP SDK streamable-http
   anyio task-group teardown)或含 GeneratorExit 的 BaseExceptionGroup
   时,会穿透 except Exception 经 add_mcp_server 静默吞掉。现归一为
   带 reason 的 BaseError(AD_ERROR),KeyboardInterrupt 原样透传。

新增单测固定 connect=False 穿透、CancelledError 归一、
BaseExceptionGroup 归一三条路径。
@openjiuwen-collaboration-bot

Copy link
Copy Markdown

head_sha: 5e524617a432d714a980addb32da0f16b607999c

任务名称 结果 日志操作
静态检查 ✅SUCCESS 点此跳转
禁用词扫描 N/A N/A
防投毒检查 ✅SUCCESS 点此跳转
开源合规检查 ✅SUCCESS 点此跳转
UT测试 ✅SUCCESS 点此跳转
ST测试 N/A N/A
build 编译包 N/A N/A
ruff codecheck ✅SUCCESS N/A

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] MCP server 连接失败被静默吞掉:add_tool_server 的 except Exception 无法捕获 CancelledError / BaseExceptionGroup

2 participants