Node 22.7 Broke Character Encoding

CI/CD
Jul 8, 2025
Dan Manges
Node 22.7 Broke Character Encoding

We regularly update all of our dependencies via dependabot, Renovate, or our own automation on RWX to open PRs.

Quickly adopting security and bug fixes is a good engineering practice. It's also helpful to identify potential issues with upgrades as soon as possible.

Noticing a Character Encoding Issue

Last August, we noticed an encoding issue in our logs. Note the funky question mark characters towards the bottom of the logs.

Kyle notices an encoding issue

Node 22.7 Buffer Issues

Earlier that day, we had upgraded from Node 22.6.0 to Node 22.7.0. It turns out, that version of Node introduced several encoding issues.

Hi! v22.7.0 has a few known buffer issues

Minor Versions Matter

Minor versions of runtimes can introduce bugs. We've also previously run into an issue due to an inconsistency in a patch version.

As a best practice, ensure a consistent version is used across all environments. Especially be sure to test against the version that you'll use in production. Pin to a specific version rather than "22.x"

Tool Versions

.tool-versions is a common file used for configuring dependencies. It works with asdf, mise, other runtime version managers.

.tool-versions
nodejs 22.17.0

You can easily use the .tool-versions file in your RWX workflows with the rwx/tool-versions package.

.rwx/ci.yml
tasks:
- key: code
call: git/clone 1.6.7
with:
repository: ...
- key: tool-versions
use: code
call: rwx/tool-versions 1.0.4
filter: [.tool-versions]
- key: node
call: nodejs/install 1.1.7
with:
node-version: ${{ tasks.tool-versions.values.nodejs }}

Never miss an update

Get the latest releases and news about RWX and our ecosystem with our newsletter.

Share this post

Enjoyed this post? Pleas share it on your favorite social network!

Related posts

Read more on updates and advice from the RWX engineering team

See all posts
Fast File Tree Navigation, Powered by WebAssembly
CI/CD

Fast File Tree Navigation, Powered by WebAssembly

We shipped a web-based file tree navigator to see files from a task's output. To make browsing as fast as possible, we implemented it in WebAssembly.

Jul 11, 2025
Read now
Instantly Starting Batch Downloads
CI/CD

Instantly Starting Batch Downloads

We started to build an asynchronous user experience commonly used for batch downloads. RWX is a platform built on performance though, so we made it faster.

Jul 10, 2025
Read now
Which Version of Node.js Does VS Code Use to Run Extensions?
CI/CD

Which Version of Node.js Does VS Code Use to Run Extensions?

When we built our language server and VS Code extension we wanted to determine the version of Node.js that VS Code uses to run extensions.

Jul 9, 2025
Read now