Merged
Size
M
Change Breakdown
Bug Fix70%
Feature20%
Maintenance10%
#28067feat(core): Support npm dist-tags in community node installation

Community node installs now accept npm dist-tags

n8n now accepts npm dist-tags like beta, next, and latest when installing community nodes, resolving them to their underlying semver versions rather than rejecting them outright with a cryptic error.

When installing a community node using an npm dist-tag — for example n8n-nodes-imap@beta — n8n was rejecting the input with "Invalid version: beta" because its validation logic only recognized strict semver strings. Dist-tags like beta, next, and latest are standard npm version specifiers, but n8n's version check treated everything after the @ symbol as a semver string and threw an error.

The fix adds a helper that recognizes valid npm dist-tags alongside existing semver validation. When a dist-tag is used, n8n resolves it to the underlying semver version via npm before proceeding — keeping the stored version precise while supporting the more ergonomic install syntax. The upstream restriction on unsafe specifiers (git URLs, tarball URLs, semver ranges) remains in place.

This is a narrow but meaningful quality-of-life fix for anyone who manages n8n nodes using the same npm workflow they use elsewhere.

View Original GitHub DescriptionFact Check

Summary

Community node installation failed with Invalid version: beta when users specified npm dist-tags (e.g. n8n-nodes-imap@beta). The validation only accepted semver versions, but dist-tags like beta, next, and latest are valid npm version specifiers.

Unsafe specs (git URLs, tarball URLs, semver ranges) remain blocked by the upstream INVALID_OR_SUSPICIOUS_PACKAGE_NAME regex.

Related Linear tickets, Github issues, and Community forum posts

https://linear.app/n8n/issue/NODE-4653 fixes #27401

Review / Merge checklist

  • I have seen this code, I have run this code, and I take responsibility for this code.
  • PR title and summary are descriptive. (conventions)
  • Docs updated or follow-up ticket created.
  • Tests included.
  • PR Labeled with release/backport (if the PR is an urgent fix that needs to be backported)

Co-authored by Claude Opus 4.6

© 2026 · via Gitpulse