Skip to main content

n8n Self-Hosted Limitations Nobody Tells You About (and the Fixes)

The n8n self-hosted limitations that matter in 2026: SQLite by default, no concurrency cap, no SSO or sharing, files in memory. Each one with its fix.

Founder of IImagined.ai

Published
Oct 11, 2026
Reading time
9 min read
Quick answer

Self-hosted n8n starts on SQLite, sets no concurrency cap, keeps files in memory and prunes execution history after 14 days; each of those has a free fix. The free Community Edition also has no SSO, sharing, projects, Git version control or external storage, which only a Business license or n8n Cloud removes. Updates, backups and security patches are yours either way.

The n8n self-hosted limitations that matter are these: the default database is SQLite, one process runs everything with no concurrency cap, files are held in memory, execution history is pruned after 14 days, and the free Community Edition has no SSO, sharing, projects, Git version control or external storage. The first five have a free fix, usually one environment variable. The rest only go away with a paid license or n8n Cloud, and updates, backups and security patches become your job either way.

Every limit here is taken from n8n's own documentation, checked on 11 October 2026: the edition comparison, database, Docker Compose, concurrency, queue mode, binary data, execution data, update, backup and task runner pages, the 3.0 breaking-changes page, n8n's security advisories and the pricing page. It is a documentation-based list, not a benchmark, and the settings below were checked against the docs rather than executed. The newest stable release that day was 2.42.6.

Self-hosting is still the right call for plenty of people. The Community Edition has no license fee and no execution cap, and n8n says it includes "almost the complete feature set". The gap is what the install tutorials leave out. This page is that list, with a verdict on each item: fix it for free, pay to remove it, or accept that Cloud is the cheaper answer. If you have not decided where to run n8n yet, our n8n Cloud vs self-hosted guide makes that call first, and the n8n hub collects everything else we publish on the tool.

n8n self-hosted limitations: the checklist

Ten limits to check before you rely on a self-hosted instance
  • SQLite is the default database, and switching to Postgres later starts from an empty database
  • Regular mode puts no limit on concurrent production executions
  • Binary files are held in memory unless you change the storage mode
  • Executions are pruned after 14 days or 10,000 runs by default
  • Webhook URLs come out wrong behind a reverse proxy, and Google sign-in needs your own OAuth app
  • No SSO through SAML or LDAP in the Community Edition
  • No workflow sharing, credential sharing or projects
  • No Git version control, environments, external secrets or log streaming
  • No S3 storage for binary data and no multi-main mode for high availability
  • Updates, backups, HTTPS and security patches are entirely yours

The same ten, with what the docs say, the fix and the verdict:

LimitWhat n8n's docs sayThe fixVerdict
1. SQLite is the default databaseFine for trying things out; Postgres for productionStart on Postgres 16, 17 or 18Free fix
2. No concurrency capRegular mode does not limit concurrent production runsSet a production limit, then queue modeFree fix
3. Files held in memoryBinary data stays in memory by default and can crash n8nFilesystem mode, or database mode with queue modeFree fix
4. History pruned at 14 daysRuns older than 336 hours or past 10,000 are deletedChange two variables and budget the diskFree fix
5. Webhooks and sign-in need setupWrong URLs behind a proxy; no managed Google sign-inSet the webhook URL; create your own OAuth appFree fix, tedious
6. No SSOSAML and LDAP are not in the Community EditionTwo-factor authentication, or a licensePay
7. No sharing or projectsOnly the owner and the creator see a workflowOne shared builder login is not a fix; license or CloudPay or Cloud
8. No Git, environments or secret storesNot in the Community EditionExport JSON with the CLI and commit it yourselfWorkaround
9. No S3 storage, no multi-mainExternal storage and high availability need a licenseDatabase mode; one main instance with restartsPay
10. Updates, backups and patchesMonthly updates and full backups are on youPin versions, back up nightly, test a restoreYour job

n8n self hosted problems you can fix for free

Five of the ten are defaults, not restrictions. They catch people because the quick-start path leaves every one of them switched to the convenient setting.

1. SQLite is the default database

The one-line installer and the stock Docker image both start on SQLite, a single file inside the .n8n folder. n8n's Docker Compose guide calls it "fine for trying things out" and says to use Postgres for "a production instance that must handle more than a handful of users or workflows running around the clock". The catch is in the same guide: "Existing SQLite data doesn't carry over automatically." Move later and you rebuild or re-import. SQLite also keeps the disk space of pruned executions unless you vacuum the file. Fix: start on Postgres 16, 17 or 18. Our n8n Docker Compose setup guide has the full file.

2. One process, no concurrency cap

In regular mode a single n8n process serves the editor, receives webhooks and runs every execution. The concurrency page says n8n "doesn't limit how many production executions may run at the same time", and that too many can "thrash the event loop, causing performance degradation and unresponsiveness". In plain terms: a burst of webhooks can freeze the editor. Fix: set N8N_CONCURRENCY_PRODUCTION_LIMIT, and runs over the limit wait in a first-in, first-out queue. When that is not enough, queue mode adds Redis and worker processes, each running 10 jobs at once by default. Queue mode is included in the free edition, though n8n does not recommend running it on SQLite.

3. Files are held in memory

"When handling binary data, n8n keeps the data in memory by default. This can cause crashes when working with large files." That sentence from the binary data page explains most out-of-memory restarts on small servers. Fix: set N8N_DEFAULT_BINARY_DATA_MODE=filesystem. In queue mode use database instead, because filesystem storage is not supported there; database mode caps a single file at 512 MiB by default. n8n 3.0 removes the in-memory mode altogether.

4. Execution history disappears after 14 days

Pruning is on by default. n8n deletes finished executions older than 336 hours, and the oldest ones once the total passes 10,000. If a client asks what a workflow did three weeks ago, the answer is gone. Fix: raise EXECUTIONS_DATA_MAX_AGE and EXECUTIONS_DATA_PRUNE_MAX_COUNT if you need a longer trail, and watch the disk, because the same page warns the database "can grow in size and run out of storage". On a small disk, do the opposite and save only failed runs.

5. Webhooks and sign-in need setup Cloud does for you

n8n builds webhook URLs from its protocol, host and port, so behind a reverse proxy they show the internal port 5678. Set N8N_WEBHOOK_URL and N8N_PROXY_HOPS=1; the older WEBHOOK_URL name is deprecated from 2.35.0. The other surprise is Google: the "Sign in with Google" button is managed OAuth2, which is Cloud-only. Self-hosted, you create your own app in the Google Cloud Console and paste in a client ID and secret. Free, but allow an hour the first time.

# n8n service environment (compose.yaml)
- DB_TYPE=postgresdb                        # 1. Postgres, plus the DB_POSTGRESDB_* settings
- N8N_CONCURRENCY_PRODUCTION_LIMIT=20       # 2. queue production runs beyond 20 at once
- N8N_DEFAULT_BINARY_DATA_MODE=filesystem   # 3. files on disk (use "database" in queue mode)
- EXECUTIONS_DATA_MAX_AGE=168               # 4. keep 7 days of history instead of 14
- EXECUTIONS_DATA_PRUNE_MAX_COUNT=50000     # 4. and up to 50,000 runs instead of 10,000
- N8N_WEBHOOK_URL=https://n8n.example.com/  # 5. public URL behind the reverse proxy
- N8N_PROXY_HOPS=1                          # 5. one proxy in front of n8n

Those lines are the documented variable names with the example values from n8n's docs. Treat the numbers as starting points, not recommendations for your workload.

Apply the free fixes in this order
  1. 1
    Choose Postgres before you build

    It is the only fix you cannot apply later without starting from an empty database.

  2. 2
    Pin the n8n version

    Use a version tag in the image line so a routine pull never crosses a breaking release.

  3. 3
    Put HTTPS in front and set the webhook URL

    A reverse proxy handles the certificate; N8N_WEBHOOK_URL makes webhook addresses correct.

  4. 4
    Set a concurrency limit

    Extra production runs queue instead of freezing the editor.

  5. 5
    Move files out of memory

    Filesystem mode on a single instance, database mode once you use queue mode.

  6. 6
    Decide how much history to keep

    Match pruning to your disk and to how far back you need to look.

  7. 7
    Schedule backups and test one restore

    The .n8n folder and the database together, copied off the server.

The next four are not defaults. They are features the free edition does not contain, and no environment variable turns them on.

What the free Community Edition includes and leaves out
Included, no license key
  • Unlimited executions and workflows
  • Queue mode with Redis and workers
  • Postgres support and task runners
  • Two-factor authentication
  • Folders and debug in editor, once you register by email
Needs Business or Enterprise
  • SSO through SAML or LDAP
  • Sharing workflows and credentials; projects
  • Git version control and environments
  • External secrets and log streaming
  • External storage for binary data
  • Multi-main mode for high availability

Source: n8n edition comparison and queue mode docs, checked October 2026

The one that changes the decision for teams is sharing. The edition comparison is blunt: "Only the instance owner and the user who creates them can access workflows and credentials." Three people maintaining the same client workflows each see only their own. Checked October 2026, the Business license that adds sharing, SSO, Git and environments is €667 a month billed annually, on top of your server. Cloud Starter and Pro include shared projects for a fraction of that, which is why small teams that could self-host often do not. Our n8n team plans guide has the tier detail.

Two of the gaps have honest workarounds. For version control, the n8n CLI exports one JSON file per workflow that you can commit yourself; our n8n version control guide shows the routine. For storage, database mode replaces S3 until single files pass its size cap. SSO and multi-main have no workaround: use two-factor authentication, and accept that one main instance means minutes of downtime when it restarts.

The limits that are simply your job now

  • Updates. n8n's advice is "Try to update at least once a month" after checking the release notes. The pace is quick: four stable 2.42 patches shipped between 5 and 9 October 2026. Major versions break things on purpose. The 3.0 page ends support for npm installs, removes older nodes such as Function, Item Lists and Cron, renames the binary data folder, switches unverified community nodes off by default and cuts the Code node task timeout from 300 seconds to 60. On 11 October 2026 the newest stable release on GitHub was still 2.42.6, so there is time to run Settings > Migration Report first; our n8n 3.0 upgrade guide covers the rest.
  • Backups. Nothing backs up a self-hosted instance unless you schedule it. A complete backup is the .n8n folder plus the Postgres database. The CLI export commands alone miss users, execution history, variables and instance settings.
  • Security patches. n8n publishes advisories on GitHub in batches. The batch of 30 September 2026 held 14, ten of them rated high, including a SQL injection in the Microsoft SQL node (GHSA-5qpp-pqww-h7fp) fixed in 2.42.1 and 2.41.4. On Cloud, n8n handles updates. On your server, you are exposed until you pull the fixed version.
  • Code isolation. The task runner page says runners are "the only isolation layer between user-provided code and n8n" and to use external mode in production. That is an extra container per n8n process, which the quick-start setups do not include.
  • Noticing failures. No one emails you when a workflow dies at 3 a.m. Set an error workflow on day one; our n8n error handling guide has an import-ready alert.

Fix it, pay for it, or move to Cloud?

Where the limits leave you
Someone can run a server
Price a Business license plus a server against Cloud Pro before you commit
Self-host the Community Edition and apply the free fixes; nothing on the paid list hurts you
Nobody wants to run a server
n8n Cloud Pro: shared projects, and n8n does the patching
n8n Cloud Starter; these limits are not worth learning for a few workflows
Several builders
One builder

For a solo builder who is comfortable on a Linux server, every limit that matters is on the free list, and an afternoon of setup removes them. What that server costs is in our self-hosted n8n pricing breakdown. For a team, the paid list is the real comparison, and it usually favours Cloud until volume is high.

One more test is worth running. If you are self-hosting because the workflows are turning into something customers pay for, the limits above are a hint that a workflow tool is carrying a product. The AI SaaS Builder program has no n8n lessons; it covers building that product as an app, with Supabase for data and sign-in, the Claude API for the AI step, deployment on Vercel and Stripe for billing.

n8n self-hosted limitations: FAQ

What are the main limitations of self-hosted n8n?

Out of the box, self-hosted n8n runs on SQLite, puts no cap on concurrent executions, keeps files in memory and prunes execution history after 14 days. The free Community Edition also leaves out SSO, workflow and credential sharing, projects, Git version control, environments, external secrets, log streaming, external storage and multi-main mode. Updates, backups and security patches are your responsibility. The first group has free fixes; the second needs a paid license.

Is SQLite good enough for self-hosted n8n?

For trying n8n out, yes. n8n's Docker Compose guide calls SQLite fine for that and recommends Postgres for a production instance with more than a handful of users or workflows running around the clock. Queue mode on SQLite is not recommended, and existing SQLite data does not carry over when you switch, so choose Postgres 16, 17 or 18 before you build anything you want to keep.

Does the free n8n Community Edition include SSO?

No. n8n's edition comparison lists SSO through SAML or LDAP among the features the Community Edition does not include, together with sharing, projects, environments and Git version control. They need a Business or Enterprise license on your own server. Checked October 2026, Business is listed at 667 euros a month billed annually. Two-factor authentication is available without a license.

How many workflows can self-hosted n8n run at the same time?

As many as arrive, which is the problem. In regular mode n8n does not limit concurrent production executions, and its docs warn that too many can make the instance unresponsive. Set N8N_CONCURRENCY_PRODUCTION_LIMIT so extra runs wait in a queue, or move to queue mode, where each worker runs 10 jobs at once by default. Queue mode is included in the free edition.

Does self-hosted n8n update itself?

No. You change the image version and restart, and n8n recommends doing it at least once a month after reading the release notes. Minor releases are frequent: four stable 2.42 patches shipped between 5 and 9 October 2026. Major versions carry breaking changes; n8n 3.0 ends npm installs and removes older nodes such as Function and Cron. Pin your version so nothing changes unplanned.

When is n8n Cloud the better choice than self-hosting?

When nobody on the team wants to own a server, when several people need to share workflows, or when a missed security patch would be a real problem. n8n itself recommends self-hosting for expert users and Cloud for everyone else. Cloud Starter and Pro include shared projects, and n8n handles hosting, updates and scaling, in exchange for a monthly execution quota.

All Access · all four programs · $99/mo

Done patching a server? Build the thing it was for.

AI SaaS Builder, included in All Access, picks up where a self-hosted workflow stops: Supabase for data and sign-in, the Claude API for the AI step, Claude Code and MCP to build faster, Vercel to deploy and Stripe to charge. It has no n8n lessons. The other three programs, weekly coaching and the community come with the same subscription.

Start All Access — $99/mo →30-day money-back guarantee
Free

Stuck on one of the ten?

Post your setup in the free Discord and compare notes with people running n8n on their own servers, or follow our Docker Compose guide to apply the free fixes in one file.