N8N BUG REPORT: ZOMBIE EXECUTIONS – depending on Workflow settings / SAVE options

该问题发生在 n8n 工作流设置中关闭了“保存执行数据”相关选项(如“保存成功的生产环境执行”“保存失败的生产环境执行”“保存手动执行”)时,执行记录在数据库 `execution_entity` 表中不会被标记为完成(`finished = false`、`status = 'running'`)

快速结论:该问题发生在 n8n 工作流设置中关闭了“保存执行数据”相关选项(如“保存成功的生产环境执行”“保存失败的生产环境执行”“保存手动执行”)时,执行记录在数据库 `execution_entity` 表中不会被标记为完成(`finished = false`、`status = ‘running’`)。优先排查 n8n 在关闭保存选项后是否跳过了最终的执行关闭更新语句。

适用环境:n8n 自托管部署,数据库为 PostgreSQL;有用户报告在 n8n 2.36.6 版本中复现。Issue 中未确认操作系统、具体 Docker 镜像版本等更多环境信息。

最快修复方案:暂无确认的一步修复方案。官方在 Issue 中未提供已验证的代码补丁或配置变通方法,仅要求用户升级到最新稳定版确认问题是否仍然存在。

注意事项:该 Issue 最终因长时间未收到反馈被自动关闭,官方并未确认根因或发布修复版本。若你仍遇到此问题,建议先升级到最新稳定版;如问题依旧,请在官方仓库重新打开 Issue 并补充版本信息。

问题场景

用户在使用 n8n 创建工作流(包括简单的三节点工作流)时,在工作流设置中关闭了以下“保存”选项:

  • Save successful production executions(保存成功的生产环境执行)
  • Save failed production executions(保存失败的生产环境执行)
  • Save manual executions(保存手动执行)

工作流在 UI 中显示执行成功并正常完成,但数据库记录却仍然停留在“运行中”状态,形成不断累积的“僵尸执行”(zombie executions)。用户通过 SQL 查询数据库时可以发现这些残留记录。

报错原文

N8N BUG REPORT: ZOMBIE EXECUTIONS - depending on Workflow settings / SAVE options

No error message, but execution still running and identified through Docker query

-- Query to see zombie executions:
SELECT id, finished, status, "startedAt" 
FROM execution_entity 
WHERE finished = false 
ORDER BY id DESC;

原因分析

根据 Issue 描述,可能原因是:当工作流的“保存执行数据”选项被关闭时,n8n 似乎跳过了所有数据库写入操作,包括最终用于关闭执行记录的 UPDATE execution_entity SET finished = true 语句。这意味着“不保存”选项不仅跳过了执行日志/输出的存储(以节省磁盘空间),还错误地跳过了执行记录的关闭更新。

但需要注意:Issue 中并未提供代码层面的证据,官方也未确认具体是哪个模块或版本引入的问题,因此以上属于“可能原因”而非已确认结论。有用户在 2.36.6 版本上复现了相同行为,但未确认这是否为所有版本的通用行为。

环境排查

  • 确认 n8n 版本:如果你使用的是较旧版本,建议先升级到最新稳定版并复测。
  • 确认数据库类型:Issue 中涉及 PostgreSQL(`execution_entity` 表),若使用其他数据库(如 SQLite、MySQL)需单独验证。
  • 检查工作流设置:确认“Save successful production executions”“Save failed production executions”“Save manual executions”三个选项是否全部关闭。
  • 通过 SQL 查询确认执行记录状态:SELECT id, finished, status, "startedAt" FROM execution_entity WHERE finished = false ORDER BY id DESC;
  • 检查 n8n 日志(如 Docker 容器日志)中是否有被吞掉的错误或警告。

解决步骤

  1. 升级 n8n 到最新稳定版——官方在 Issue 中要求用户升级后复测,已有用户报告在 2.36.6 上复现,旧版本大概率受影响。升级后先用简单工作流验证问题是否消失。
  2. 如果问题仍然存在,暂时开启“保存执行数据”选项——作为临时缓解方案,可以重新启用至少一个保存选项,确认执行记录是否能正常标记为完成。注意这只是绕过问题,并非根本修复。
  3. 清理已有僵尸执行——如果你已积累大量僵尸执行记录,可以通过 SQL 手动标记为完成或删除(请先备份数据):
  4. 在官方 GitHub 仓库重新打开 Issue,并附上:你的 n8n 版本号、数据库类型、完整工作流 JSON(或最小复现案例)、以及确认“升级后仍然存在”的说明。官方维护者需要这些信息才能定位问题。

验证方法

执行一个简单的工作流(例如只有两个节点),等待其正常完成后,运行以下 SQL 查询检查对应执行记录:

SELECT id, finished, status, "startedAt" FROM execution_entity WHERE id = [你的执行ID] ORDER BY id DESC;

如果 finished 变为 truestatus 不再是 'running',则问题已解决。也可以检查数据库中是否不再有新增的 finished = false 记录累积。

参考来源

n8n-io/n8n #21262

GamsGo AI

AI 工具推荐

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

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

了解 GamsGo AI

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

这个方案解决了吗?

celebrityanime
celebrityanime
文章: 20233

发表回复

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