$ the-wire · showcase
HTTP drain stalls after coalesced chunks, undici restores h2 error codes
By RepoJournal · Filed · About Node.js · Composed from the cited sources · methodology
Two HTTP-layer fixes land the same day: Node's http response can stall because 'drain' never fires after corked writes flush, and undici stops clobbering the original HTTP/2 transport error with a Content-Length mismatch.
http: emit 'drain' after flushing coalesced chunks nodejs/node
Since the chunk-coalescing work, write() sets kNeedDrain from buffered byte length while net.Socket counts string chunks in UTF-16 code units, so multi-byte text can stay below highWaterMark and 'drain' never fires; if flushed writes complete asynchronously, the end-of-uncork() check also runs with bytes still pending, and the response stalls. A patch now emits 'drain' after the flushed chunks,...
fix(h2): preserve transport errors and mismatch causes nodejs/undici
A follow-up to the HTTP/2 Content-Length validation in #5816: when a session fails after headers arrive and the body comes up short, the stream error handler was replacing the transport failure with UND_ERR_RES_CONTENT_LENGTH_MISMATCH, discarding the original code, message and stack. This preserves the HTTP/2 session error and attaches the mismatch as a cause instead.
sqlite: add ReadOptionalString helper nodejs/node
createSession() used HasOwnProperty, so { table: undefined } and { db: undefined } threw and prototype-inherited properties were ignored; a new ReadOptionalString helper used for dbName, table, db, source and target makes undefined mean the default and reads inherited properties, matching deserialize() and backup(). ReadOptionalBool and ReadOptionalString are also marked [[nodiscard]].
deps: update undici to 8.12.4 nodejs/node
The automated dependency update moves the bundled undici in nodejs/node to 8.12.4. The separate error-preservation fix above landed in undici proper and has not yet been picked up in this bump.
Add report for 2026-11-08 nodejs/reliability
The only other activity was the bot-generated reliability report for 2026-11-08, which carries no behavior change.