Originally published on integrationstars.com.
The n8n 3.0 upgrade is one-way. n8n released the 3.0 beta on October 27, 2026 and plans the stable release for early December. There is no rollback from 3.x to 2.x except restoring a backup. Before you upgrade, run the Migration Report (Settings > Migration Report, n8n 2.39 or later), fix what it flags, take a full backup and test on a staging copy.
The timeline
| Date | What happens |
|---|---|
| Oct 27, 2026 | 3.0.0 beta, opt-in |
| Early Dec 2026 | Stable 3.x planned |
| Dec 31, 2026 | Support for 1.x ends (no direct 1.x → 3.x path) |
| 12 months after stable | 2.x security and critical fixes end |
What breaks, sorted by what it does to a running integration
| Change | Effect | Where it hides |
|---|---|---|
| Cron and Interval removed | Published workflow won't activate | Older polling syncs. Use Schedule Trigger |
| Function, Function Item, Item Lists removed | Executions fail | Pre-1.0 workflows. Report can convert to Code |
$getPairedItem removed |
Code fails | Use $('<node>').item, .itemMatching(), .pairedItem()
|
| Code task timeout 300 → 60 s | Long Code steps time out | Big transforms. Set N8N_RUNNERS_TASK_TIMEOUT
|
| Execute Sub-workflow Local File / URL sources removed | Child can't load | Use Database or Define Below |
| AI Agent v1 removed | Old agent types stop | Rebuild on the latest Tools Agent |
| Slack credential needs Signature Secret | Slack Trigger stops | Approval / alert flows |
| Unverified community packages off by default | Nodes stop loading |
N8N_UNVERIFIED_PACKAGES_ENABLED=true only if you accept the risk |
Larger SSRF block list (with default) |
Some private ranges refused | Adds 100.64.0.0/10; allow-list with N8N_SSRF_ALLOWED_IP_RANGES
|
Self-hosted: Docker or nothing
3.0 doesn't publish a runnable n8n package to npm, and npm / npx n8n installs are unsupported. Move to Docker first, as its own change. Also: ~/.n8n/binaryData becomes ~/.n8n/storage (n8n won't start if both exist), encryption key rotation is on by default, and the Compression node limits drop to 256 MiB / 1,000 entries.
A six-step plan
- Check your version (Settings > Personal). On 1.x, go to 2.x first.
- Run the Migration Report; read both "Workflow issues" and "Instance issues".
- Fix the workflows that create orders, invoices, payments or stock movements first. Review auto-migrated versions before publishing.
- Search Code nodes for
$getPairedItem,$evaluateExpressionand anything running over a minute. - Back up, restore to staging, upgrade the copy, replay a day of real inputs and compare record counts.
- Upgrade in a quiet window; confirm every scheduled workflow activated and your error workflow still fires.
The full version, with the Cloud notes and FAQ, is on our blog. Sources: n8n blog, v3.0 breaking changes, migration tool, n8n support FAQ.
Top comments (1)
Step 5 is the one I'd underline twice, with one caveat: when you "replay a day of real inputs" on the staging copy, the restored backup still holds production credentials. Unless you swap them for sandbox ones first, the staging run will happily create real invoices, send real emails and post to real Slack channels. I'd add a step 4.5: rotate every credential on the staging copy to a test account (or a dead endpoint) before the first execution.
Two small additions to step 6: