目录
n8n 常见问题与故障排除
工作流没有自动运行
- 是否已经点击 Publish(n8n 1.x 中是 Active 开关)?只点击 Save 不会让触发器运行。
- 修改后是否重新发布?
- 计划时间是否正确?见下一题。
- 到 Executions 查看是否有失败记录。
计划时间相差 8 小时
n8n 未设置时区,默认使用 UTC。设置环境变量 GENERIC_TIMEZONE=Asia/Taipei 并重新启动,或在工作流的 Settings → Timezone 中指定。
Webhook URL 显示 localhost
在部署设置中添加外部 URL:
N8N_WEBHOOK_URL=https://n8n.example.com/
(n8n 2.30 之前的版本使用 WEBHOOK_URL。)同时确认 N8N_HOST 和 N8N_PROTOCOL 正确,见自托管部署。

Webhook 返回 404
- 使用 Test URL 时,需要先点击 Listen for test event,而且只能接收一次。
- 使用 Production URL 时,工作流必须已发布。
- 确认 HTTP 方法(GET / POST)与设置一致。
详见 Webhook 教程。
节点运行了很多次
上游节点输出了多个 items,下游节点会对每个 item 运行一次。不想重复运行时,在节点的 Settings 中启用 Execute Once,或先用 Aggregate 合并数据。见数据结构与 items。
Google 授权失败:redirect_uri_mismatch
Google Cloud 中设置的“已获授权的重定向 URI”和 n8n 显示的 OAuth Redirect URL 不一致。复制 n8n 凭据页面上的 URL,完整粘贴到 Google Cloud 中。如果 n8n 显示的是 localhost,先修正部署的 URL 设置。见凭据管理。
Google 授权每隔几天就失效
Google Cloud 的 OAuth 应用处于“测试”状态时,授权的有效期较短。可以将应用发布为正式版本。
从其他电脑连接时出现 secure cookie 错误
通过 http://(非 HTTPS)从非 localhost 地址连接时会发生此问题。正式使用请设置 HTTPS;只在内网测试时可以暂时设置 N8N_SECURE_COOKIE=false。
内存不足(JavaScript heap out of memory)
通常是一次处理的数据太多或文件太大:
- 使用 Loop Over Items 分批处理
- 拆分为子工作流(子流程结束后会释放内存)
- 只保留需要的字段(在 Edit Fields 中启用 Keep Only Set Fields)
- 增加主机内存
数据库越来越大
执行记录会保存每个节点的完整数据。设置自动清理:
EXECUTIONS_DATA_PRUNE=true
EXECUTIONS_DATA_MAX_AGE=168 # 保留 7 天(单位:小时)
也可以在工作流的 Settings 中设置“不保存成功的执行数据”。
表达式显示 undefined 或错误
- 先运行前面的节点,表达式预览才会有数据。
- 使用
?.避免中间层不存在:{{ $json.address?.city }}。 - 读取更早的节点要用
$('节点名称'),而不是$json。
见表达式教程。
Code 节点无法读取 $env
n8n 2.x 默认禁止 Code 节点读取环境变量。建议将需要的值改存为凭据,或在节点参数中传入。
更新后工作流出错
检查版本说明中的破坏性变更。如果无法立即修复,可以将镜像版本改回旧版并还原数据库备份(数据库迁移通常无法反向执行,因此更新前的备份很重要)。见备份与更新。
去哪里找示例?
- n8n 官网的 Templates 页面有数千个社区分享的工作流模板,可以直接导入使用。
- n8n 官方社区论坛有大量问答,遇到错误信息时可以先搜索。
更新于 2026年10月12日