
Microsoft SQL Credential not marked for first time setup after pulling from git
快速结论:该报错发生在 n8n 环境中,当通过 Git 推送/拉取 Microsoft SQL 或 Redis 凭证时,如果凭证 stub 中的 port 或其他字段已被编辑(非完全为空),那么拉取后系统不会将其标记为“首次设置”状态,导致用户无法通过弹窗提示填充敏感数据。优先排查凭证 stub 中是否包含非空字段(如自定义端口、证书等)。
问题场景
用户在同一 n8n 实例(版本 1.81.4,Docker 自托管,PostgreSQL 数据库,scaling 模式)上,通过 Git 环境同步流程(push-pull)在不同环境间迁移 Microsoft SQL 凭证。具体操作为:在环境 X 创建 Microsoft SQL 凭证并推送到 Git,然后在环境 Y 拉取该凭证。拉取后,凭证在列表中显示为空(未填充数据),但系统弹窗未将其标记为“首次设置”的凭证,导致用户无法感知需要补充该凭证的真实数据。
报错原文
# 核心现象:拉取后凭证未标记为“first time setup”
# 凭证 stub 示例(从 Git 远程仓库拉取后):
{
"id": "8kLeghDcRUNWeKJU",
"name": "Microsoft SQL account",
"type": "microsoftSql",
"data": {
"server": "",
"database": "",
"user": "",
"password": "",
"port": 1333,
"allowUnauthorizedCerts": true
},
"ownedBy": {
"type": "personal",
"personalEmail": "myemail@example.tld"
}
}
# 报错截图描述:凭证显示为空白但未出现在“首次设置”弹窗中
# 参考:GitHub Issue 图1(无首次设置弹窗)、图2(凭证列表空白)、图3(完整 stub JSON)
原因分析
可能原因:n8n 在拉取凭证 stub 后,判断“是否为首次设置”的逻辑存在缺陷。当凭证 stub 中的 data 字段包含非空值(如用户修改了默认端口 port、开启了 allowUnauthorizedCerts 等),系统错误地认为该凭证已经配置过,因此不会弹出“需首次设置”的提示。根据 Issue 中开发者与用户的讨论,复现的关键是编辑了凭证中的端口号或其他字段后推送到 Git,拉取时系统就会跳过首次设置标记。Redis 凭证也存在类似问题。
环境排查
- n8n 版本:1.81.4(Issue 中报告版本),且该问题在后续版本中仍可能复现(Issue 直到关闭时有新回复确认依然存在)。
- 部署方式:Docker(自托管),scaling 模式。
- 数据库:PostgreSQL。
- Node.js 版本:20.18.3。
- 凭证类型:Microsoft SQL 和 Redis(在 Issue 中被提及同样受影响)。
- Git 同步设置:启用 GitHub 或 Git 远程仓库,凭证类型为“stub”模式(仅推送 ID、名称、类型、部分数据字段,不含敏感值如密码)。
解决步骤
- 确认凭证 stub 中 data 字段是否包含非空值:在环境 Y 拉取后,进入凭证列表检查 Microsoft SQL 凭证的 JSON 内容,重点关注
data下的port、allowUnauthorizedCerts等字段是否被预先填写(即使其他字段如 server/database 为空)。 - 手动触发“首次设置”弹出:如果凭证未显示在首次设置弹窗中,可尝试 删除该凭证 后重新从 Git 拉取,并确保在环境 X 推送时
data字段保持完全为空(仅保留 ID、name、type、ownedBy)。这意味着在推送前,应先将凭证的端口、证书等设置恢复为默认值(如 port 归零或删除自定义字段),以避免拉取后被误认为已配置。 - 检查 n8n 日志:查看 n8n 后端日志中关于 credential 拉取的记录,确认是否有关于“skip first time setup”或“credential already configured”的日志条目。
- 等待官方修复:Issue 中创建了内部工单
GHC-1226,但 Issue 因长时间无活动被关闭。如果问题持续,建议在 GitHub 仓库中创建新 Issue 或重新打开此 Issue,并引用GHC-1226。目前无官方修复版本。 - 替代方案:如果问题影响生产使用,可考虑在环境 Y 中手动创建同名的 Microsoft SQL 凭证,并填充正确的连接信息,而不是依赖 Git 同步。或者使用 n8n 的 API 手动标记凭证为“首次设置”。
验证方法
在环境 Y 执行拉取后,观察凭证列表中是否出现 Microsoft SQL 凭证,并且系统是否弹出带有“首次设置”链接的弹窗(弹窗应列出所有需要填写的空凭证)。如果凭证列表显示但未在弹窗出现,说明问题复现。如果凭证在弹窗中显示,且点击后可正常填写服务器、端口、密码等信息,则问题已解决。



