EventEmitter memory leak in visual editor preview server with

I am using the Auto-Annotated Portfolio template, which has built-in visual editing. The config and deploy preview work, until I try to edit something with the visual editor, at which point the preview server auto-shutdowns.

I have re-created the project from scratch with no changes several times to verify that this is a template problem, and not a result of my changes.

The problem appears to be with an EventEmitter memory leak, potentially in the visual editor or actual template configuration.

It does not appear to be a preview server resources limitation, as the displayed readouts remain low.

The relevant part of the preview server log is:

Feb 12, 02:42:33 AM: (node:5216) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 26 close listeners added to [Server]. MaxListeners is 25. Use emitter.setMaxListeners() to increase limit
Feb 12, 02:43:00 AM: Finished processing dev server in 2m44.715s
Feb 12, 02:43:00 AM: ==================================================================

Here’s the full log (just shows a successful build with some warnings):

Feb 12, 02:40:15 AM: build-image version: 235a96ed6c11cbdf942eed7e70e6802956f9b464 (focal)
Feb 12, 02:40:15 AM: devbot version: 38ee1df6386ddb840331dd0816cccd3a353d310f
Feb 12, 02:40:15 AM: Fetching cached dependencies
Feb 12, 02:40:15 AM: Failed to fetch cache, continuing with dev run
Feb 12, 02:40:15 AM: Starting to prepare your repo
Feb 12, 02:40:16 AM: No cached dependencies found. Cloning fresh repo
Feb 12, 02:40:16 AM: git clone --filter=blob:none git@github.com:mutabledevotions/zigme
Feb 12, 02:40:16 AM: Preparing Git Reference preview
Feb 12, 02:40:18 AM: Fetching 0 asset(s)
Feb 12, 02:40:18 AM: Starting to install dependencies
Feb 12, 02:40:19 AM: e[2mmisee[0m e[34mpythone[0m@3.8.20   install
Feb 12, 02:40:19 AM: e[2mmisee[0m e[34mpythone[0m@3.8.20   download cpython-3.8.20+20241002-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz
Feb 12, 02:40:20 AM: e[2mmisee[0m e[34mpythone[0m@3.8.20   extract cpython-3.8.20+20241002-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz
Feb 12, 02:40:20 AM: e[2mmisee[0m e[34mpythone[0m@3.8.20   python --version
Feb 12, 02:40:20 AM: e[2mmisee[0m e[34mpythone[0m@3.8.20   Python 3.8.20
Feb 12, 02:40:20 AM: e[2mmisee[0m e[34mpythone[0m@3.8.20 e[38;5;10m✓e[0m installed
Feb 12, 02:40:20 AM: mise e[36m/opt/build/repo/mise.tomle[0m tools: e[34mpythone[0m@3.8.20
Feb 12, 02:40:20 AM: Python version set to 3.8
Feb 12, 02:40:20 AM: mise e[36m/opt/build/repo/mise.tomle[0m tools: e[34mpythone[0m@3.8.20
Feb 12, 02:40:20 AM: Attempting Ruby version 2.7.2, read from environment
Feb 12, 02:40:21 AM: Using Ruby version 2.7.2
Feb 12, 02:40:21 AM: mise e[36m/opt/build/repo/mise.tomle[0m tools: e[34mpythone[0m@3.8.20
Feb 12, 02:40:21 AM: Started restoring cached go cache
Feb 12, 02:40:21 AM: Finished restoring cached go cache
Feb 12, 02:40:21 AM: Installing Go version 1.19.5 (requested 1.19.5)
Feb 12, 02:40:26 AM: go version go1.19.5 linux/amd64
Feb 12, 02:40:26 AM: mise e[36m/opt/build/repo/mise.tomle[0m tools: e[34mpythone[0m@3.8.20
Feb 12, 02:40:26 AM: mise e[36m/opt/build/repo/mise.tomle[0m tools: e[34mpythone[0m@3.8.20
Feb 12, 02:40:26 AM: mise e[36m/opt/build/repo/mise.tomle[0m tools: e[34mpythone[0m@3.8.20
Feb 12, 02:40:27 AM: mise e[36m/opt/build/repo/mise.tomle[0m tools: e[34mpythone[0m@3.8.20
Feb 12, 02:40:27 AM: Using PHP version 8.0
Feb 12, 02:40:27 AM: mise e[36m/opt/build/repo/mise.tomle[0m tools: e[34mpythone[0m@3.8.20
Feb 12, 02:40:27 AM: mise e[36m/opt/build/repo/mise.tomle[0m tools: e[34mpythone[0m@3.8.20
Feb 12, 02:40:27 AM: mise e[36m/opt/build/repo/mise.tomle[0m tools: e[34mpythone[0m@3.8.20
Feb 12, 02:40:27 AM: mise e[36m/opt/build/repo/mise.tomle[0m tools: e[34mpythone[0m@3.8.20
Feb 12, 02:40:27 AM: mise e[36m/opt/build/repo/mise.tomle[0m tools: e[34mpythone[0m@3.8.20
Feb 12, 02:40:27 AM: mise e[36m/opt/build/repo/mise.tomle[0m tools: e[34mpythone[0m@3.8.20
Feb 12, 02:40:28 AM: Downloading and installing node v22.22.0...
Feb 12, 02:40:28 AM: Downloading https://nodejs.org/dist/v22.22.0/node-v22.22.0-linux-x64.tar.xz...
Feb 12, 02:40:28 AM: Computing checksum with sha256sum
Feb 12, 02:40:28 AM: Checksums matched!
Feb 12, 02:40:31 AM: Now using node v22.22.0 (npm v10.9.4)
Feb 12, 02:40:31 AM: Enabling Node.js Corepack
Feb 12, 02:40:31 AM: Started restoring cached build plugins
Feb 12, 02:40:31 AM: Finished restoring cached build plugins
Feb 12, 02:40:31 AM: Started restoring cached corepack dependencies
Feb 12, 02:40:31 AM: Finished restoring cached corepack dependencies
Feb 12, 02:40:31 AM: No npm workspaces detected
Feb 12, 02:40:31 AM: Started restoring cached node modules
Feb 12, 02:40:31 AM: Finished restoring cached node modules
Feb 12, 02:40:31 AM: Installing npm packages using npm version 10.9.4
Feb 12, 02:40:34 AM: npm warn deprecated string-similarity@1.2.2: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
Feb 12, 02:40:34 AM: npm warn deprecated rimraf@2.7.1: Rimraf versions prior to v4 are no longer supported
Feb 12, 02:40:34 AM: npm warn deprecated google-p12-pem@3.1.4: Package is no longer maintained
Feb 12, 02:40:47 AM: added 834 packages, and audited 835 packages in 15s
Feb 12, 02:40:47 AM: 217 packages are looking for funding
Feb 12, 02:40:47 AM:   run `npm fund` for details
Feb 12, 02:40:47 AM: 35 vulnerabilities (8 low, 15 moderate, 12 high)
Feb 12, 02:40:47 AM: To address issues that do not require attention, run:
Feb 12, 02:40:47 AM:   npm audit fix
Feb 12, 02:40:47 AM: To address all issues (including breaking changes), run:
Feb 12, 02:40:47 AM:   npm audit fix --force
Feb 12, 02:40:47 AM: Run `npm audit` for details.
Feb 12, 02:40:47 AM: npm packages installed
Feb 12, 02:40:47 AM: Successfully installed dependencies
Feb 12, 02:40:47 AM: Starting dev server
Feb 12, 02:40:47 AM: mise e[36m/opt/build/repo/mise.tomle[0m tools: e[34mpythone[0m@3.8.20
Feb 12, 02:40:48 AM: mise e[36m/opt/build/repo/mise.tomle[0m tools: e[34mpythone[0m@3.8.20
Feb 12, 02:40:48 AM: mise e[36m/opt/build/repo/mise.tomle[0m tools: e[34mpythone[0m@3.8.20
Feb 12, 02:40:52 AM: ⬥ Ignored project settings env var: STACKBIT_API_SECRET (defined in process)
Feb 12, 02:40:52 AM: ⬥ Ignored general context env var: SITE_ID (defined in process)
Feb 12, 02:40:52 AM: ⬥ Ignored general context env var: SITE_NAME (defined in process)
Feb 12, 02:40:52 AM: ⬥ Ignored general context env var: DEPLOY_ID (defined in process)
Feb 12, 02:40:52 AM: ⬥ Ignored general context env var: BUILD_ID (defined in process)
Feb 12, 02:40:52 AM: ⬥ Ignored general context env var: URL (defined in process)
Feb 12, 02:40:52 AM: ⬥ Ignored general context env var: REPOSITORY_URL (defined in process)
Feb 12, 02:40:52 AM: ⬥ Ignored general context env var: CONTEXT (defined in process)
Feb 12, 02:40:52 AM: ⬥ Ignored general context env var: BRANCH (defined in process)
Feb 12, 02:40:52 AM: ⬥ Ignored general context env var: HEAD (defined in process)
Feb 12, 02:40:52 AM: ⬥ Ignored general context env var: COMMIT_REF (defined in process)
Feb 12, 02:40:52 AM: ⬥ Ignored general context env var: CACHED_COMMIT_REF (defined in process)
Feb 12, 02:40:52 AM: ⬥ Ignored general context env var: PULL_REQUEST (defined in process)
Feb 12, 02:40:52 AM: ⬥ Ignored general context env var: LANG (defined in process)
Feb 12, 02:40:52 AM: ⬥ Ignored general context env var: LANGUAGE (defined in process)
Feb 12, 02:40:52 AM: ⬥ Ignored general context env var: LC_ALL (defined in process)
Feb 12, 02:40:52 AM: ⬥ Ignored general context env var: NEXT_TELEMETRY_DISABLED (defined in process)
Feb 12, 02:40:52 AM: ⬥ Setting up local dev server
Feb 12, 02:40:58 AM: origin
Feb 12, 02:40:59 AM: [dev-server-plugin] listening on port 8288
Feb 12, 02:40:59 AM: e[32minfoe[39m: Site directory: /opt/build/repo
Feb 12, 02:40:59 AM: e[32minfoe[39m: Loading configuration from https://api-create.services.netlify.com
Feb 12, 02:40:59 AM: e[32minfoe[39m: localId: 3df46b37e323486ba2dff5761cbd2d96
Feb 12, 02:41:00 AM: e[32minfoe[39m: Content sources found: git (project: 9a0364b9, version: 1.0.36)
Feb 12, 02:41:00 AM: e[32minfoe[39m: Using Content Source Interface
Feb 12, 02:41:00 AM: e[32me[32minfoe[32me[39m: [content-store] Initializing content source: git (project: 9a0364b9)
Feb 12, 02:41:01 AM: e[32me[32minfoe[32me[39m: [content-store] → Loaded git content source data (project: 9a0364b9): 43 models, 17 documents and 35 assets
Feb 12, 02:41:01 AM: ⬥ Starting Next.js dev server
Feb 12, 02:41:01 AM: e[33m⠋e[39m Waiting for Next.js dev server to be ready on port 3000
Feb 12, 02:41:01 AM: e[32m✔e[39m Next.js dev server ready on port 3000
Feb 12, 02:41:01 AM: e[96me[1m​e[22me[39m
Feb 12, 02:41:01 AM: e[96me[1mSummary                                                       e[22me[39m
Feb 12, 02:41:01 AM: e[96me[1m────────────────────────────────────────────────────────────────e[22me[39m
Feb 12, 02:41:01 AM: e[36me[1m​e[22me[39m
Feb 12, 02:41:01 AM: e[36me[1m❯ @netlify/plugin-visual-editor: Visual Editor server startede[22me[39m
Feb 12, 02:41:01 AM:    Open http://localhost:8888/_stackbit in your browser
Feb 12, 02:41:01 AM:    ╭─────────────────────── ⬥  ────────────────────────╮
Feb 12, 02:41:01 AM:    │                                                   │
Feb 12, 02:41:01 AM:    │   Local dev server ready: http://localhost:8888   │
Feb 12, 02:41:01 AM:    │                                                   │
Feb 12, 02:41:01 AM:    ╰───────────────────────────────────────────────────╯
Feb 12, 02:41:01 AM: e[33m⠋e[39m Setting up the Edge Functions environment. This may take a couple of minutes.
Feb 12, 02:41:01 AM: > personal-site@0.2.0 dev
Feb 12, 02:41:01 AM: > next dev
Feb 12, 02:41:02 AM:    ▲ Next.js 15.5.12
Feb 12, 02:41:02 AM:    - Local:        http://localhost:3000
Feb 12, 02:41:02 AM:    - Network:      http://10.72.83.77:3000
Feb 12, 02:41:02 AM:  ✓ Starting...
Feb 12, 02:41:04 AM:  ✓ Ready in 2.5s
Feb 12, 02:41:06 AM: (node:5216) [DEP0060] DeprecationWarning: The `util._extend` API is deprecated. Please use Object.assign() instead.
Feb 12, 02:41:06 AM: (Use `node --trace-deprecation ...` to show where the warning was created)
Feb 12, 02:41:14 AM:  ○ Compiling /[[...slug]] ...
Feb 12, 02:41:21 AM:  ✓ Compiled /[[...slug]] in 8s (1180 modules)
Feb 12, 02:41:25 AM:  HEAD / 200 in 12123ms
Feb 12, 02:41:57 AM: Uploading Cache of size 453.7MB
Feb 12, 02:42:13 AM:  HEAD / 200 in 246ms
Feb 12, 02:42:15 AM:  GET / 200 in 238ms
Feb 12, 02:42:19 AM:  ⚠ Cross origin request detected from devserver-preview--zigme.netlify.app to /_next/* resource. In a future major version of Next.js, you will need to explicitly configure "allowedDevOrigins" in next.config to allow this.
Read more: https://nextjs.org/docs/app/api-reference/config/next-config-js/allowedDevOrigins
 GET /favicon.ico 404 in 218ms
Feb 12, 02:42:30 AM:  GET / 200 in 233ms
Feb 12, 02:42:33 AM: (node:5216) MaxListenersExceededWarning: Possible EventEmitter memory leak detected. 26 close listeners added to [Server]. MaxListeners is 25. Use emitter.setMaxListeners() to increase limit
Feb 12, 02:43:00 AM: Finished processing dev server in 2m44.715s
Feb 12, 02:43:00 AM: ==================================================================
Feb 12, 02:43:00 AM:

The site I am working on is at https://zigme.netlify.app

Thanks for any help!

Maybe this will help, a permanent change

“scripts”: {
“start”: “NODE_OPTIONS=‘–max-listeners=50’ netlify dev”
}