Git integration resets non-default credential option values (custom credentials)

该报错发生在 n8n 的 Git 集成导出凭证时,当凭证属性使用默认值时会被省略,使用非默认值时导出为空字符串,导致从 Git 拉取后自定义凭证的选项型属性(如环境选择)被重置为默认值。优先排查 n8n 版本是否为 2.13.0 或是否包含 PR #25530 的改动。

快速结论:该报错发生在 n8n 的 Git 集成导出凭证时,当凭证属性使用默认值时会被省略,使用非默认值时导出为空字符串,导致从 Git 拉取后自定义凭证的选项型属性(如环境选择)被重置为默认值。优先排查 n8n 版本是否为 2.13.0 或是否包含 PR #25530 的改动。

适用环境:n8n 2.13.0(Docker 自托管),Node.js 24.13.1,PostgreSQL 数据库,生产模式,企业版许可证。

最快修复方案:暂无确认的一步修复方案;该问题已被官方标记为已解决,修复将包含在后续版本中,建议升级到包含修复的版本。

注意事项:该问题影响了自定义凭证和内置的 Multiple Headers Auth 凭证类型;在修复版本发布前,从 Git 拉取凭证可能导致非默认值被重置。

问题场景

在 n8n 中通过 Git 进行源码控制时,导出的凭证桩(credential stub)中,当凭证属性(如环境选择字段)使用默认值时,该属性会被完全省略;当使用非默认值时,该属性会被导出但值为空字符串。当从 Git 拉取到另一个实例时,凭证的环境字段会被重置为默认值,导致多环境部署(开发、测试、验收、生产)下生产实例使用了错误的 API 端点。

报错原文

Git integration resets non-default credential option values (custom credentials)

原因分析

可能原因是 n8n 在导出凭证时,对属性默认值的处理存在不一致:当属性值等于默认值时被省略,当不等于默认值时会导出一个空字符串。根据 Issue 讨论,此问题可能由 PR #25530 引入,该改动同时导致了其他问题(如 Issue #29560 中 Git 同步覆盖凭证端口号)。

具体表现为:
默认值(Sandbox)导出时:"data": { "apikey": "" }(environment 字段缺失)
非默认值(Production)导出时:"data": { "apikey": "", "environment": "" }(environment 值为空)

环境排查

  • 确认 n8n 版本是否为 2.13.0(本 Issue 报告的版本)
  • 检查是否使用了 Git 集成进行源码控制
  • 确认凭证类型是否为自定义凭证(含 options 类型属性)或内置的 Multiple Headers Auth
  • 检查 Node.js 版本是否为 24.13.1
  • 确认数据库类型(本 Issue 使用 PostgreSQL)
  • 检查是否为企业版许可证(本 Issue 报告为 enterprise production)

解决步骤

  1. 确认 n8n 版本是否为 2.13.0,如果是则记录该版本存在此问题。
  2. 检查是否使用了包含 PR #25530 改动的版本,该改动可能是问题引入点。
  3. 关注官方发布说明,等待包含修复的版本发布。
  4. 如果问题在修复版本发布后仍然存在,请在 Issue 中留言反馈。
  5. 在修复前,可尝试避免对凭证中选项型属性使用非默认值,或每次从 Git 拉取后手动检查并修正凭证值。

验证方法

升级到包含修复的版本后,创建或修改一个自定义凭证,设置选项型属性为默认值和非默认值,分别执行 Git 推送和拉取,确认导出的凭证 JSON 中该属性始终被正确导出且值为实际设置值,从 Git 拉取后凭证不会被重置为默认值。

参考来源

n8n-io/n8n #27160

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 18922

发表回复

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