The Wire · Showcase
STREAM BACKPRESSURE FIX PREVENTS DATA DUPLICATION IN PIPETO
By RepoJournal · Filed · About Node.js
Node core patched a critical bug in pipeTo() that duplicated chunks when writers returned false during backpressure, causing output like 'abcdcd' instead of 'abcd'.
The fix [1] [2] corrects how pipeTo() interprets false returns from PushWriter in block backpressure mode. Previously, the code mistakenly retried accepted data asynchronously, creating duplicates. Now it properly waits for drain instead. This lands alongside stream efficiency improvements [3] [4] that clean up unnecessary type checking in the stream pipeline. On the documentation front, doc-kit shipped HTML generation for index and 404 pages [5], improving static site output. Meanwhile nodejs.org deployed two critical fixes: a sidebar layout bug that clipped navigation items on scroll [6] [7], and a content migration refresh that reorganizes the blog post timeline [8] [9]. The website also switched queue handling away from Durable Objects to memoryQueue for better skew protection [10].
Action items
- → Verify pipeTo() behavior in production if you pipe to backpressured writers nodejs/node [plan]
- → Test your stream pipelines for duplicate chunk output after next node release nodejs/node [monitor]
- → Review nodejs.org sidebar rendering if you customize navigation layout nodejs/nodejs.org [monitor]
References
- [1] stream: avoid retrying accepted pipeTo writes ↗ nodejs/node
- [2] stream: avoid retrying accepted pipeTo writes nodejs/node
- [3] stream: remove unnecessary check nodejs/node
- [4] streams: remove unnecessary check ↗ nodejs/node
- [5] feat(web): add all, index, and 404 generation ↗ nodejs/doc-kit
- [6] fix: sidebar last items hidden behind header on scroll (#8852) nodejs/nodejs.org
- [7] fix: sidebar last items hidden behind header on scroll ↗ nodejs/nodejs.org
- [8] Content(migrations): update ↗ nodejs/nodejs.org
- [9] Content(migrations): update (#8881) nodejs/nodejs.org
- [10] chore(open-next): avoid the use of DurableObjects by using `queueCache` with `memoryQueue` instead ↗ nodejs/nodejs.org
FAQ
- What changed in Node.js on May 17, 2026?
- Node core patched a critical bug in pipeTo() that duplicated chunks when writers returned false during backpressure, causing output like 'abcdcd' instead of 'abcd'.
- What should Node.js teams do about it?
- Verify pipeTo() behavior in production if you pipe to backpressured writers • Test your stream pipelines for duplicate chunk output after next node release • Review nodejs.org sidebar rendering if you customize navigation layout
- Which Node.js repositories shipped on May 17, 2026?
- nodejs/node, nodejs/doc-kit, nodejs/nodejs.org