cc-switch 路由切换失败、Claude 路由配置错误、切换路由状态失败 detail、ProxyPanel 路由面板错误、v3.16.2 修复说明
大家好 这里是「代码简单说」,欢迎大家关注同名公众号,不定时更新更多实用有趣的教程 也欢迎大家在评论区一起讨论交流!~

在使用 cc-switch 路由切换功能时,存在一个典型的提示文案不一致问题:
路由面板(ProxyPanel)报错:
切换路由状态失败:{{detail}}主界面路由开关报错:
切换路由状态失败: Claude 配置文件不存在同一错误,在不同入口表现出完全不同的提示内容,影响调试体验与一致性。
该问题可通过以下方式稳定复现:
本地用户目录不存在 .cluade 文件夹
在路由中启用 Claude 路由
ProxyPanel 中提示:
切换路由状态失败:{{detail}}主界面路由开关提示:
切换路由状态失败: Claude 配置文件不存在入口 | 错误提示 | 是否正确 |
|---|---|---|
ProxyPanel 路由面板 | 切换路由状态失败:{{detail}} | ❌ 未解析 |
主界面路由开关 | 切换路由状态失败: Claude 配置文件不存在 | ✅ 正常 |
可以看到核心问题不是后端,而是前端提示链路不一致。
问题核心在于 ProxyPanel 的错误处理逻辑:
切换路由状态失败: {{detail}}在切换接管失败时:
Claude 配置文件不存在){{detail}} 未被替换,直接原样输出模块 | 错误处理方式 |
|---|---|
ProxyPanel | 未传递 detail 参数 |
主界面 Switch | 正确传递 error.message |
因此出现同一错误,不同提示的问题。
在 v3.16.2 中修复逻辑如下:
ProxyPanel 在捕获错误时补充 detail:
catch (err) {
const detail = err?.message || err?.detail || '未知错误'
showError(i18n.t('switch.failed', { detail }))
}确保:
t('切换路由状态失败', { detail })而不是:
t('切换路由状态失败:{{detail}}')修复后两条路径行为一致:
都会正确显示:
切换路由状态失败: Claude 配置文件不存在该问题本质不是业务错误,而是典型的:
i18n 占位符未绑定数据 + 多入口错误处理不一致
属于前端工程中常见的三类问题组合:
资源 | 地址 |
|---|---|
cc-switch v3.16.2 | https://pan.quark.cn/s/3c34f79a51d8 |
该问题虽然表现为“提示不一致”,但本质是错误链路在不同 UI 层断裂导致的。
修复后统一了:
对后续扩展新路由(如 Claude / GPT / 自定义路由)具有统一规范意义。