Node.js: Release Day Double Feature & Critical Stream Fixes
Today brought us two major Node.js releases - version 20.20.1 'Iron' (LTS) and 22.22.1 'Jod' (LTS) - alongside some critical bug fixes that'll make your streams and HTTP parsing much more reliable. The star of the show is a UTF-8 character corruption fix in streams and a nasty use-after-free bug squashed in HTTP parsing.
Duration: PT4M3S
Transcript
Hey there, fellow developers! Welcome back to another episode of the Node.js podcast. It's March 6th, 2026, and wow - what a day to be working with Node! I'm practically buzzing with excitement because we've got not one, but TWO major releases to talk about, plus some fantastic bug fixes that are going to make your life so much easier.
Let's dive right into the main event - we had four pull requests merged yesterday and today, and they're telling quite a story.
First up, we've got the big release news! Marco Ippolito dropped version 20.20.1 'Iron' LTS, and Antoine du Hamel followed up with 22.22.1 'Jod' LTS. These aren't just version bumps - they're packed with goodness. Both releases include updated root certificates to NSS 3.119, which means better security for all your HTTPS connections. Plus, there's Python 3.14 build support, so if you're one of those early adopters already testing the latest Python, Node's got your back.
But here's where things get really interesting - and this is the kind of fix that makes me appreciate the incredible attention to detail in the Node.js community. Matteo Collina tackled a genuinely tricky bug in the fast UTF-8 stream implementation. Picture this: you're streaming text that includes emoji or Chinese characters, and suddenly they're getting corrupted or completely disappearing. Frustrating, right?
The culprit was in how Node handled partial writes that split right through multi-byte UTF-8 characters. When you've got a 3-byte character like a Chinese character, or a 4-byte emoji, and the write operation cuts right through the middle of it, the old code was essentially playing a guessing game with character boundaries. Matteo's fix is elegant - it backs up from the split point, finds a proper UTF-8 character boundary by looking for those continuation byte patterns, and then properly decodes everything. No more mysterious replacement characters, no more lost emoji in your streams.
Then we have Gerhard Stöbich with what I'd call a "sleeping dragon" kind of bug fix. This was a use-after-free issue in HTTP parsing that could crash your application when handling pipelined requests. Imagine multiple HTTP requests arriving in a single TCP segment, and if a close event handler triggered at just the wrong moment during parsing, boom - crash. Gerhard added a clever flag-based system that lets the parser know when it's being freed and gracefully abort execution instead of crashing. It's the kind of fix that prevents those 3 AM production incidents we all dread.
And Filip Skokan wrapped things up with some crypto improvements - fixing argument count checks in importKey and adding missing AES dictionaries. These might seem small, but they're the kind of polish that makes the Web Crypto API more reliable and complete.
Here's what I love about today's activity - it shows the full spectrum of Node.js development. We've got the big, celebration-worthy releases that bring security updates and new platform support. We've got the deep, technical fixes that solve real-world problems you might not even know you had. And we've got the careful, methodical improvements that make APIs more robust.
For today's focus, if you're working with streams and handling international text - especially if you're dealing with user-generated content that might include emoji or non-Latin characters - definitely plan to update when these fixes land in your target version. The UTF-8 stream fix alone could save you from some really puzzling bugs down the road.
If you're doing any HTTP work with pipelined requests, that parsing fix is going to give you much better stability. And crypto folks, those Web Crypto improvements are worth checking out.
The Node.js ecosystem keeps proving that it's not just about adding flashy new features - it's about making the foundation rock solid. That's a wrap for today - keep coding, keep building amazing things, and I'll catch you in the next episode!