`/console/api/workspaces/current/plugin/auto-upgrade/fetch` gets validation error

用户在 Dify 自托管(Docker)环境中,登录控制台后,进入 Integrations(集成)页面时触发该错误。

`/console/api/workspaces/current/plugin/auto-upgrade/fetch` gets validation error

`/console/api/workspaces/current/plugin/auto-upgrade/fetch` gets validation error

快速结论:此报错通常出现在 Dify 自托管(Docker)环境,进入 Integrations(集成)页面时触发。优先排查是否因前端 hook 在 `category` 参数为 `undefined` 时仍发起 API 请求导致。

问题场景

用户在 Dify 自托管(Docker)环境中,登录控制台后,进入 Integrations(集成)页面时触发该错误。

报错原文

{
    "code": "invalid_param",
    "message": "1 validation error for ParserAutoUpgradeFetch\ncategory\n  Field required [type=missing, input_value={}, input_type=dict]\n    For further information visit https://errors.pydantic.dev/2.12/v/missing",
    "status": 400
}

原因分析

根据 Issue 中 @dosu 的分析,该问题是 PR #37475(添加了分类范围的插件自动升级策略)引入的 bug。

可能原因:前端 hook `usePluginAutoUpgradeSettings`(位于 web/service/use-plugins.ts)缺少 enabled 守卫。当渲染 Integrations 页面时,getPluginCategoryBySection() 对某些 section(如 'provider''data-source''mcp')返回 undefined,此时 hook 仍以 category: undefined 发起 API 调用。API 客户端在序列化时丢弃了 undefined 参数,导致请求体中缺少 category 字段,触发 Pydantic 校验错误。

环境排查

  • Dify 版本:latest main branch(接近 2026-06-18 闭合时的代码)
  • 部署方式:Self Hosted (Docker)
  • 相关文件:web/service/use-plugins.ts(第 588-597 行的 usePluginAutoUpgradeSettings hook)
  • 相关文件:web/app/components/integrations/hooks/use-integration-nav.ts(第 12-21 行的 getPluginCategoryBySection

解决步骤

  1. 打开 web/service/use-plugins.ts 文件,定位到 usePluginAutoUpgradeSettings hook(约第 588 行)。
  2. useQuery 调用中添加 enabled: !!category 条件,例如:
    export const usePluginAutoUpgradeSettings = (category: PluginCategoryEnum) => {
      return useQuery({
        queryKey: pluginAutoUpgradeSettingsQueryKey(category),
        queryFn: () => get<PluginAutoUpgradeSettingsResponse>(
          '/workspaces/current/plugin/auto-upgrade/fetch',
          { params: { category } },
        ),
        staleTime: 60 * 1000,
        enabled: !!category,  // 阻止 category 为 undefined 时发起查询
      })
    }
  3. 保存文件并重新构建前端代码(或重建 Docker 镜像)。
  4. (可优先尝试)如果 Issue 讨论中的修复尚未合入官方 main 分支,可手动应用该补丁。

验证方法

重新进入 Dify 控制台的 Integrations(集成)页面,观察是否不再弹出 400 错误响应,且网络请求中 /console/api/workspaces/current/plugin/auto-upgrade/fetch 仅在 category 有有效值时才会被触发。

参考来源

langgenius/dify #37605

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 8837

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注