Home › Test reports › n8n 3.0 Upgrade Check

v1.0.024/24 tests passedProduct pageRaw TEST-REPORT.md

This is the TEST-REPORT.md shipped inside the download, shown unedited. "Tested by SkillHammer" is SkillHammer's own claim, backed by this report. It is not a third-party certification.

Buy on Gumroad – US$19Instant download · 30-day refund · Product page

TEST REPORT: n8n 3.0 Upgrade Check v1.0.0

Run by N8N_BIN=n8n245/node_modules/.bin/n8n bash tests/run_all.sh; full output in tests/logs/run-20261030.txt. Started 2026-10-30 09:10:13 GMT, finished 09:10:28 GMT (times from date at run time). Box: Linux, Python 3.13.5, npm 11.21.1, n8n 2.45.7 (npm, current latest/stable tag).

Result: 3/3 steps passed, FAILED STEPS: 0. 20/20 tests (15 scanner, 3 npm cross-checks with per-node subtests, 2 real-n8n round trip).

What is real and what is not

1. Scanner: tests/test_scan.py (15/15)

2. Against npm: tests/test_against_npm.py (3/3)

3. Real n8n 2.45.7 round trip: tests/test_real_n8n.py (2/2)

Failures seen during development (fixed before the logged run)

  1. First test_scan.py run: 1 error, SKILL.md not written yet. Fixed by writing it.
  2. First full run: 1 failure. The "clean" fixture used Edit Image v2, which doesn't exist in 2.45.6. Checking npm showed v2 first ships in 2.46.x (the npm beta/next tag on 30 Oct). This was a real finding: the fix text now says to move to 2.46+ before moving Edit Image to v2, and the test checks it.

Nothing was published, deployed or sent. The npm cache (tests/.npm-cache, ~38 MB; moved out of the draft folder after the run) is a download cache and should be left out of the zip.

Real-app verification 2026-10-30

Run by N8N_BIN=n8n245/node_modules/.bin/n8n N8N3_CMD="n8n3-run/start.sh N8N_RUNNERS_BROKER_PORT=5695" N8N3_HOST_DATA=n8n3-run/data N8N3_DATA=/data bash tests/run_all.sh. Full output is in tests/logs/run-20261030-realapp.txt. The run started at 12:12:40 GMT and finished at 12:13:33 GMT.

Result: 4/4 steps passed, FAILED STEPS: 0. 24/24 tests: 17 scanner, 3 npm, 2 real n8n 2.45.7 and 2 real n8n 3.0.1.

How 3.0.1 was run

What was checked on real 3.0.1

Probe Real 3.0.1 result Scanner
Code node (x*21) ran, y: 42 no findings
Function Unrecognized node type: n8n-nodes-base.function N3-NODE-REMOVED
Function Item Unrecognized node type: n8n-nodes-base.functionItem N3-NODE-REMOVED
Item Lists 3.1 Unrecognized node type: n8n-nodes-base.itemLists N3-NODE-REMOVED
HTML Extract Unrecognized node type: n8n-nodes-base.htmlExtract N3-NODE-REMOVED
Code with $evaluateExpression The function "$evaluateExpression" is not available in this context N3-EVALEXPR
Set with $getPairedItem $getPairedItem was removed. Use $('Node').item, … N3-GETPAIREDITEM
Edit Image v1 Edit Image versions 1 and 1.1 are no longer supported. Upgrade the node to version 2. N3-EDIT-IMAGE-V1
Execute Workflow, source localFile The "Local File" source was removed. … N3-SUBWORKFLOW-SOURCE

Bugs found and fixed

  1. N3-AGENT-V1 gave the wrong mode and severity. It labelled an AI Agent with no explicit mode as "toolsAgent (default)", and flagged every v<2 agent as a blocker.
  2. n8n 3.0.1's own rule (agent-node-mode.js) treats no mode as Conversational Agent up to v1.5 and Tools Agent from v1.6. Only the Conversational, OpenAI Functions, Plan and Execute, ReAct and SQL modes fail. A v1.6–1.9 Tools Agent "will run with version 2 behavior" (a warning).
  3. Fixed to match, with a new test test_agent_mode_resolution_matches_n8n_301.
  4. Missing: Chat hub off by default. This is in the official notes and in 3.0.1's chat-hub-deprecated rule. Added N3-CHAT-HUB (note) for when a deployment is checked and N8N_ENABLED_MODULES lacks chat-hub. The tests were updated: a clean deploy now gives exactly this note, and listing chat-hub gives 0.
  5. Missing: both storage directories exist, so 3.0 fails to start. This is in the official notes and in storage-path-rename.rule.js. Added N3-STORAGE-BOTH (blocker) for a .n8n folder under --deploy containing both binaryData and storage. N3-STORAGE-PATH and N3-STORAGE-BOTH are now skipped when N8N_STORAGE_PATH or N8N_BINARY_DATA_STORAGE_PATH is set, as in n8n's rule. New test: test_storage_both_dirs.
  6. SKILL.md said N3-NO-MIGRATION-REPORT was a warning. The code emits a note; the doc was fixed. The rule count is now 25: 11 blockers, 9 warnings, 5 notes (README and LISTING updated).
  7. test_against_npm.py crashed with TimeoutExpired on a fresh cache: npm wrote the tarball but didn't exit within 300 s. It now uses the tarball if it is complete, otherwise it skips.

Official 3.0 notes vs this pack (docs.n8n.io/changelog/v30-breaking-changes, fetched 2026-10-30)

Still not tested: a real Docker or Kubernetes deployment, the Migration Report UI and REST endpoint (not run here; its rule code was read), real customer exports.

Re-run 2026-11-02 (promoted from drafts/2026-10-30 to products/)

N8N_BIN=n8n245/node_modules/.bin/n8n N8N3_CMD="n8n3-run/start.sh N8N_RUNNERS_BROKER_PORT=5695" … bash tests/run_all.sh; full output in tests/logs/run-20261102.txt, started 2026-11-02 07:13:46 GMT, finished 07:14:58 GMT. Result: FAILED STEPS: 0, 24/24 tests: 17 scanner, 3 npm cross-checks, 2 real n8n 2.45.7, 2 real n8n 3.0.1 (chroot of the official 3.0.1 image, as above). Extra finding on 3.0.1 (from the Stripe Access Drift Check tests, same day): on a never-started 3.x instance n8n import:credentials fails with "No active encryption key found"; 3.x creates the key on the first n8n start (dist/encryption/encryption-bootstrap.service.js, main instance only). Worth adding as a NOTE rule in v1.1 (not added yet; the scanner is unchanged).

Pre-launch re-run 2026-11-02

Same command as above, with real n8n 2.45.7 and the real n8n 3.0.1 chroot; full output in tests/logs/run-20261102-prelaunch.txt, started 08:00:30 GMT, finished 08:01:35 GMT. FAILED STEPS: 0, 24/24 tests (17 scanner, 3 npm, 2 real n8n 2.45.7, 2 real n8n 3.0.1). Counts unchanged. Box-specific install paths in the run commands above were shortened (e.g. n8n245/..., n8n3-run/...); the commands are otherwise as run.