Error: Netlify CLI has terminated unexpectedly
Describe the bug
I get this error after updating to the latest version(s)
"Error: Netlify CLI has terminated unexpectedly"
The error will continue forever. The only way to stop it is to kill the terminal (shell) entirely.
I tried v23.0.0, 22.4.0, 22.3.0 — the most recent version that works properly on my machine is v22.2.0
MacBook Air M2, 2022, 16GB, Sequoia 15.5 running zsh.
I get this error running netlify run dev in my Astro repository.
Steps to reproduce
I just ran netlify run dev on the latest (and near latest) versions of netlify.
Configuration
netlify.toml
[[headers]] for = "/" [headers.values] Access-Control-Allow-Origin = "" [[plugins]] package = "@netlify/plugin-emails" [functions] external_node_modules = ["@sendgrid/mail"] [dev] framework = "astro"
Environment
System: OS: macOS 15.5 CPU: (8) arm64 Apple M2 Memory: 284.03 MB / 16.00 GB Shell: 5.9 - /bin/zsh Binaries: Node: 22.13.0 - ~/.nvm/versions/node/v22.13.0/bin/node Yarn: 1.22.22 - /usr/local/bin/yarn npm: 11.3.0 - ~/.nvm/versions/node/v22.13.0/bin/npm pnpm: 9.8.0 - /usr/local/bin/pnpm bun: 1.2.2 - ~/.nvm/versions/node/v22.13.0/bin/bun npmPackages: netlify-cli: ^22.3.0 => 22.3.0 npmGlobalPackages: netlify-cli: 22.2.0
Getting this as well in my app - downgrading to netlify-cli 22.2.2 fixed it.
Just another note to this sticky/tricky one: still experiencing this process runaway issue. And just to add regarding the email plugin — I just noticed that, despite the plugin not being specified in netlify.toml nor any package.json — it appears in the build log:
❯ Loading plugins
- @netlify/[email protected] from Netlify app
Where is this coming from? ("Netlify app" — what's that?)
functionsDirectory = "/Users/julian/Code/nfl-backoffice/netlify/functions"
functionsDirectoryOrigin = "default"
headersOrigin = "inline"
redirectsOrigin = "config"
[build]
edge_functions = "/Users/julian/Code/nfl-backoffice/netlify/edge-functions"
publish = "/Users/julian/Code/nfl-backoffice/dist"
publishOrigin = "ui"
commandOrigin = "ui"
command = "npm run build"
functions = "/Users/julian/Code/nfl-backoffice/netlify/functions"
[build.environment]
[build.processing]
[build.processing.css]
[build.processing.html]
[build.processing.images]
[build.processing.js]
[build.services]
[dev]
framework = "astro"
[images]
remote_images = []
[functions]
[functions."*"]
[[plugins]]
origin = "config"
pinned_version = "1"
[plugins.inputs]
[[headers]]
for = "/*"
[headers.values]
Access-Control-Allow-Origin = "*"
[[headers]]
for = "/_astro/*"
[headers.values]
Cache-Control = "public, max-age=31536000, immutable"
[[redirects]]
from = "/projects/ghostwriter"
to = "/projects/2025/artificial-intelligence-designed-fictions-research-studio/ghostwriter/"
status = 301.0
force = false
[redirects.query]
[redirects.conditions]
[redirects.headers]
[[redirects]]
from = "/projects/2025/ai-designed-fictions-research-studio/vibewriter-web-edition"
to = "/projects/2025/artificial-intelligence-designed-fictions-research-studio/vibewriter-web-edition/"
status = 301.0
force = false
[redirects.query]
[redirects.conditions]
[redirects.headers]
[[redirects]]
from = "/blog/the-value-of-speculation-n03"
to = "/blog/2025/10/the-value-of-speculation-n03"
status = 301.0
force = false
[redirects.query]
[redirects.conditions]
[redirects.headers]
[[redirects]]
from = "/newsletters/w44-y25"
to = "/newsletters/2025/w44-y25"
status = 301.0
force = false
[redirects.query]
[redirects.conditions]
[redirects.headers]