Memory OOM & License Activation Failures

I’m trying to self-host n8n CE on a FastComet VPS (AlmaLinux 9, cPanel/WHM). I can start the app fine with PM2, but I keep hitting two issues:

  1. RuntimeError OOM:
RuntimeError: abort(RangeError: WebAssembly.instantiate(): Out of memory:
Cannot allocate Wasm memory for new instance)
at /node_modules/ssh2/lib/protocol/crypto/poly1305.js
Node.js v20.19.5

  1. License activation always fails (both in the UI and with CLI). The UI shows:
Activation failed
Failed to activate license: Connection Error: fetch failed

Information on my n8n setup

    1. n8n version: 1.110.1 (npm, PM2 managed)
    2. Database: SQLite (default)
    3. n8n EXECUTIONS_PROCESS setting: regular/own
    4. Running n8n via: npm + PM2 on VPS
    5. Operating system: AlmaLinux 9 (CloudLinux environment, FastComet VPS with cPanel/WHM)
    6. Node.js version: 20.19.5 (installed via nvm)

ecosystem.config.js excerpt:

module.exports = {
  apps: [{
    name: "n8n",
    script: "/home/taftc/n8n.taftc.org/node_modules/n8n/bin/n8n",
    args: "start",
    interpreter: "/home/taftc/.nvm/versions/node/v20.19.5/bin/node",
    node_args: "--max-old-space-size=2048 --dns-result-order=ipv4first",
    env: {
      N8N_HOST: "n8n.taftc.org",
      N8N_PROTOCOL: "https",
      N8N_PUBLIC_URL: "https://n8n.taftc.org",
      WEBHOOK_URL: "https://n8n.taftc.org",
      GENERIC_TIMEZONE: "Asia/Singapore",
      N8N_DEFAULT_BINARY_DATA_MODE: "filesystem",
      N8N_ENCRYPTION_KEY: "<redacted>",
      N8N_LICENSE_ACTIVATION_KEY: "<redacted>"
    }
  }]
}


What we’ve tried so far

  • Initially on Node 21 → switched to Node 20 LTS via nvm.

  • Clean reinstall of node_modules under Node 20.

  • Added --max-old-space-size=2048 and set N8N_DEFAULT_BINARY_DATA_MODE=filesystem.

  • Confirmed outbound connectivity:

    • curl -I https://api.n8n.io → 200 OK

    • curl -I https://license.n8n.io → 404 (but this happens everywhere, so not sure if expected).

  • Tried seeding license key via env (N8N_LICENSE_ACTIVATION_KEY) and CLI activation (n8n license:activate), but both fail with “Connection Error: fetch failed”.


Questions

  1. Is the poly1305 WebAssembly OOM a known issue? Any way to disable poly1305/llhttp WASM or bypass ssh2 crypto in n8n?

  2. Would switching from SQLite → Postgres help with stability, or unrelated?

  3. For license activation:

    • Is a 404 on https://license.n8n.io root expected?

    • Is there a way to force licence activation purely via env or CLI without the UI fetch?

    • Are there any additional env vars we should set (e.g. N8N_LICENSE_SERVER_URL)?

  4. Could CloudLinux LVE limits (per-user memory/network) be breaking fetch/licence calls even though curl works?

  5. Should we try Node 22.x LTS, or is Node 20.x strictly recommended?

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.