快速结论:该问题发生在 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 容器日志)中是否有被吞掉的错误或警告。
解决步骤
- 升级 n8n 到最新稳定版——官方在 Issue 中要求用户升级后复测,已有用户报告在 2.36.6 上复现,旧版本大概率受影响。升级后先用简单工作流验证问题是否消失。
- 如果问题仍然存在,暂时开启“保存执行数据”选项——作为临时缓解方案,可以重新启用至少一个保存选项,确认执行记录是否能正常标记为完成。注意这只是绕过问题,并非根本修复。
- 清理已有僵尸执行——如果你已积累大量僵尸执行记录,可以通过 SQL 手动标记为完成或删除(请先备份数据):
- 在官方 GitHub 仓库重新打开 Issue,并附上:你的 n8n 版本号、数据库类型、完整工作流 JSON(或最小复现案例)、以及确认“升级后仍然存在”的说明。官方维护者需要这些信息才能定位问题。
验证方法
执行一个简单的工作流(例如只有两个节点),等待其正常完成后,运行以下 SQL 查询检查对应执行记录:
SELECT id, finished, status, "startedAt" FROM execution_entity WHERE id = [你的执行ID] ORDER BY id DESC;
如果 finished 变为 true、status 不再是 'running',则问题已解决。也可以检查数据库中是否不再有新增的 finished = false 记录累积。
参考来源
AI 工具推荐
想把多个 AI 模型放在一个入口?
GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。
推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。
这个方案解决了吗?
可以继续搜索完整报错,或查看同一工具的其他排查指南。


