n8n 2.47: what's new and should you upgrade
What's new in n8n 2.47: an on/off switch for n8n Assistant, Agent version history, Postgres SSL certificates, fairer queue mode, and which version to run.

n8n 2.47.0 was released on November 3, 2026 on the beta track. The changes most people will notice: admins can now turn n8n Assistant on or off (with a new N8N_INSTANCE_AI_ENABLED variable), Agents get version history and a publication timeline, and the Postgres credential accepts your own SSL certificates. For production, the current stable release is 2.46.4.
The short version
- Which version to run: on November 4, 2026, npm's
stableandlatesttags point to 2.46.4, andbeta,nextandrcto 2.47.0. - n8n Assistant switch: a setting and an env var to turn the Assistant on or off. If you set neither, it's off on the Enterprise plan and on for all other plans.
- Agents: version history, a publication timeline, and saved versions you can publish independently of the draft.
- Postgres: the credential gains CA Certificate, Client Private Key and Client Certificate fields.
- Queue mode: new jobs go to idle workers in turn, and a stop request now stops the job on the worker.
- 3.0 Migration Report: shows each workflow's project, adds resolution guidance, and re-syncs its findings after an upgrade.
- Our upgrade test: a 2.46.4 instance upgraded to 2.47.0 without issues, and JavaScript and Python Code nodes kept working.
Should you upgrade?
- Production instances: stay on 2.46.4, the stable release. Our n8n 2.46 roundup covers what changed from 2.45.
- Test or staging instances: try 2.47.0 if you use queue mode, connect to Postgres over SSL with your own certificates, build Agents, or are preparing for 3.0 with the Migration Report.
Pin the exact version in Docker Compose, and give the task runner the same tag:
services:
n8n:
image: docker.n8n.io/n8nio/n8n:2.47.0
task-runners:
image: n8nio/runners:2.47.0Take a backup before you upgrade. Our guide on how to update self-hosted n8n safely has the steps.
Turn n8n Assistant on or off
2.47.0 adds "an on/off switch and env var for the n8n Assistant", per the changelog. n8n Assistant is the chat helper that builds and edits workflows from a prompt. The variable is N8N_INSTANCE_AI_ENABLED, which isn't in 2.46.4. According to its description in n8n's source:
- It sets whether the Assistant is on when no admin has turned it on or off in Settings > Assistant.
- When it's unset, the Assistant is off on the Enterprise plan and on for all other plans.
- A choice saved in Settings > Assistant overrides the variable.
So if you want the Assistant off on a self-hosted instance from the first start, set it in your Compose file:
services:
n8n:
environment:
- N8N_INSTANCE_AI_ENABLED=falseOther Assistant changes in 2.47.0: it can read unsaved manual executions, its requests and model fallback go through your environment's proxy settings, and skills it creates or edits show up as artifacts. The Assistant and MCP clients can also update credential descriptions. We didn't test the Assistant itself, because self-hosted instances need their own AI provider account for it.
Agents: version history and independent publishing
Agents (the standalone agents in a project, not the AI Agent node; see our Agents explainer) get:
- Version history and a publication timeline.
- Saved versions you can publish independently of drafts, so you can keep editing a draft while an earlier version stays live.
- A 25 MB upload limit for agent knowledge files.
- Better memory: improved episodic recall, recalled and flagged memories in session traces, and a redesigned session trace.
- MCP tools to read Agent session logs.
The upgrade ran several Agent database migrations, including AddAgentVersionMetadata, CreateAgentPublishHistory and BackfillAgentDraftVersions.
Postgres SSL certificates
The Postgres credential has three new fields in 2.47.0: CA Certificate, Client Private Key and Client Certificate. The credential source shows them only when SSL is set to Allow or Require.
Queue mode fixes
If you run queue mode, 2.47.0 changes how work is spread and stopped. From the changelog:
- Each new queue job goes to one idle worker in turn.
- A stop request now stops a job on the worker even when it comes from a different process.
- Waiting executions are removed from memory on queue workers.
- Resume attempts for waiting and queued executions are limited.
- Jobs are included in the claiming list when n8n reads waiting queue jobs.
- Dynamic time saved is recorded for executions in queue mode.
Migration Report for 3.0
The Migration Report keeps getting ready for n8n 3.0. In 2.47.0:
- Each workflow's project shows under its name.
- Rule detail pages add resolution guidance and load their table one page at a time.
- Findings re-sync after an upgrade, so the report reflects the version you're on.
- A new
$evaluateExpressionrule, and the report's wording now matches the docs. - Better entries for removed nodes and the Edit Image node, and a recommendation to move alerting into the
preExecutehook. - Faster scans, with keyset paging and fewer repeated reads.
For every breaking change and when 3.0 is due, see n8n 3.0 breaking changes and how to prepare.
Also new in 2.47.0
- Webhook signature verification for the Mailchimp Trigger and Venafi TLS Protect Cloud Trigger nodes.
- Zendesk node: new nodes default to OAuth2 authentication.
- n8n node: a user get operation.
- OpenWeatherMap node: uses the credential's base URL and authentication.
- Outbound MCP OAuth: support for CIMD.
- Observability: an
otel.configureexternal hook, W3C baggage passed from webhooks to outbound requests, and an upgrade to Sentry v11. - Promotions module now loads by default.
- Apps: the changelog lists early work on Apps (a list page, an app view, and app building in n8n Assistant). The
appsmodule isn't in n8n's default module list in 2.47.0, so a standard instance doesn't load it.
Fixes worth knowing about
The 2.47.0 changelog lists over 100 bug fixes. A few that change behavior or touch security:
- Workflow-scoped routes need
execution:readto read execution data. - Internal-only error metadata stays out of REST error responses, and execution redaction now applies to MCP workflow run errors.
- Runs that fail before their first node no longer count as billable.
- Self-referencing parameter expressions no longer crash n8n on startup.
- Expressions: named array keys,
Errorobjects in item data and fields named likeObject.prototypemethods now read correctly, and template literals that contain new lines keep their text. - The Postgres connection pool is rebuilt only when a fresh connection shows the database is reachable.
- Data Table rows are read without taking the SQLite write lock.
- Error items go to the error output when the paired item lookup fails.
- Email Trigger (IMAP) node resolves expressions after activation.
- Microsoft Teams Trigger node keeps one subscription per resource and removes orphans.
- The runners base images are pinned, with updated launcher, urllib3 and moment packages.
What we saw when we upgraded
On November 4 we ran n8n 2.46.4 in Docker with the default SQLite database and an external task runner, published a JavaScript Code node workflow and a Python Code node workflow behind webhooks, then switched both images to 2.47.0:
- 21 database migrations ran on startup, and the log recorded
Recorded version change: 2.46.4 -> 2.47.0. - JavaScript and Python Code nodes returned the same results through their webhooks as on 2.46.4.
- The startup deprecation list was unchanged. Both versions warn about the same five variables, such as the
N8N_RUNNERS_TASK_TIMEOUTdefault dropping from 300 to 60 seconds in a future version.
This was a small test instance, so it says nothing about migration time on a large Postgres database.
For all release coverage, see the releases tag.
Sources
Editorial team
The then8nblog editorial team researches every article from n8n's release notes, documentation and source code, states the n8n version each guide was tested on, and has every post reviewed by a human editor before it goes live.



