Error: write EPIPE
Node wrote to a pipe or socket whose other end was already closed.
Meaning
Piping output to a command that exits early (head, grep -q), clients disconnecting mid-response, or child processes that died.
Common causes
- Downstream process closed stdin (e.g. node script.js | head)
- Client disconnected during a stream
- Child process exited before you wrote to it
⚡ Quick fix
- Handle the stream ‘error’ event
- Ignore EPIPE on stdout when piping to head
- Check the child process is alive before writing
Detailed fix by platform
Node.js
process.stdout.on('error', e => { if (e.code === 'EPIPE') process.exit(0); });
How to diagnose
- Writer — Which stream?
- Reader — Why did it close?
🔧 Still not fixed?
Many errors look alike. If the steps above didn’t solve it, one of these is probably what you’re facing:
Similar errors
Most viewed in Node.js
Other ways to find it
Where this error sits
Origin: Application & API. Errors that are often confused with or caused by this one (click to open):
🧠 Still stuck? Analyze your error
Paste the full message, response headers or stack trace — we'll detect the platform and point to the most likely cause.
💬 What worked for others
No tips yet — did something else fix this for you?
Share what worked for you
Tips are checked by an editor before they appear. Links are removed.
Report a correction or suggest an improvement
Last updated 13 Oct 2026