Execution data incorrectly redacted with “credential access” error for single-owner Community instance after upgrade

升级 n8n 后,单用户的 Community 实例在查看执行详情时出现 Execution data incorrectly redacted with "credential access" error,但实际数据已正常写入数据库。根因是子工作流中存在一个引用“缺失凭据”的节点,即使该节点位于未

快速结论:升级 n8n 后,单用户的 Community 实例在查看执行详情时出现 Execution data incorrectly redacted with “credential access” error,但实际数据已正常写入数据库。根因是子工作流中存在一个引用“缺失凭据”的节点,即使该节点位于未激活分支、本次执行未使用凭据,执行仍被判定为凭据不可访问而脱敏输出。优先排查所有工作流(含子工作流)中的凭据引用是否完整存在。

适用环境:n8n 2.47.4(升级后出现,2.47.4 仍复现);自托管(self hosted);Ubuntu 24.04 LTS;Node.js v26.13.0;PostgreSQL;执行模式 queue;许可证类型 Registered Community(未启用企业脱敏功能);实例仅有一个用户,角色为 global:owner。

最快修复方案:暂无确认的一步修复方案。Issue 中已验证的处理方式是:定位并修复或移除子工作流中指向缺失凭据的节点引用,之后执行数据恢复可见。

注意事项:凭据校验据报告可能遍历子工作流中的全部凭据引用,而非仅校验本次执行实际使用的凭据,因此未执行分支上的无效引用也会触发脱敏。修复时需确认删除或替换引用后,不影响其他分支后来启用时的正常执行。

问题场景

用户在自托管 n8n(PostgreSQL、queue 执行模式、Registered Community 许可证)升级后,执行使用凭据的工作流(如 Telegram、PostgreSQL、OpenAI 等),打开执行详情页时输出被标记为脱敏。实例只有一个用户,该用户同时是 global:owner、个人项目所有者、工作流所有者和凭据所有者,数据库中的 ownership 关系经核查无异常,执行数据也成功保存到 PostgreSQL,但 UI 仍提示凭据不可访问。

报错原文

Output data redacted
This execution used a credential you don't have access to, so its data is hidden.

日志中同时可见执行数据是正常处理的:

Execution ID XXXX had Execution data. Running with payload.
Save execution data to database for execution ID XXXX

原因分析

根据 Issue 中给出的根因:某个子工作流里存在一个引用缺失凭据的节点,该节点位于一个未激活的 Switch 分支上,本次执行从未运行过该节点。但 n8n 仍将该次执行标记为使用了当前用户无权访问的凭据,从而触发输出脱敏。这说明凭据访问校验可能检查了子工作流中所有的凭据引用,而不只是本次执行实际使用的凭据(此处为可能原因,Issue 未给出代码层面的确认)。

因此,单用户、ownership 配置正确、许可证为企业版以外的情况仍可能出现该提示,排查方向应从“用户权限”转向“工作流与子工作流中的凭据引用完整性”。

环境排查

  • 确认 n8n 版本及是否在升级后开始出现(Issue 中为 2.47.4,升级到该版本后仍复现)。
  • 确认实例用户数量与角色:仅一个用户,角色为 global:owner。
  • 确认许可证类型为 Registered Community,且未启用企业版脱敏相关功能。
  • 确认数据库类型(PostgreSQL)与执行模式(queue)。
  • 核查 user、project、project_relation、shared_workflow、shared_credentials 表中的 ownership 是否一致(Issue 中核查结果正常,可排除权限数据问题)。
  • 确认 Node.js 版本(Issue 中为 v26.13.0)、操作系统(Ubuntu 24.04 LTS)。
  • 重点排查:目标工作流调用的所有子工作流中,每个节点的凭据引用是否都指向仍然存在的凭据。

解决步骤

  1. 先确认执行数据本身正常:检查 PostgreSQL 中该执行记录存在,且日志中有 “Execution ID XXXX had Execution data. Running with payload.” 与 “Save execution data to database for execution ID XXXX”,以排除存储或写入问题。
  2. 排除权限数据问题:核对 user、project、project_relation、shared_workflow、shared_credentials,确认单一用户对工作流和凭据的 ownership 正确。
  3. 定位触发脱敏的工作流及其调用的全部子工作流,逐个检查节点上的凭据选择项是否仍指向存在的凭据。
  4. 特别检查未激活分支(如 Switch 的未命中分支)上的节点,这些节点即使从未执行,也可能保留着已删除或缺失的凭据引用。
  5. 对缺失的凭据引用进行修复(重新选择正确凭据)或移除该节点/引用。
  6. 重新执行工作流并刷新执行详情页,确认脱敏提示消失。

验证方法

修复或移除子工作流中缺失的凭据引用后,重新执行同一工作流,打开执行详情页:输出数据应正常可见,且不再出现 “Output data redacted / This execution used a credential you don’t have access to” 提示。Issue 中报告修复后执行数据恢复可见。

参考来源

n8n-io/n8n #43474

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 34555

发表回复

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