{{ message }}
Repository navigation
DX-3137: default responseEncoding to plain JSON - #1458
Merged
Merged
Conversation
ytkimirti
marked this pull request as ready for review
October 14, 2026 09:36
CahidArda
previously approved these changes
Oct 21, 2026
Contributor
There was a problem hiding this comment.
🟢 Approval recommended
No blocking issues remain; the release-note clarification is a minor documentation follow-up.
1 open issue
What changed in this PR
Changes Redis responses to plain JSON by default, reducing transfer size while preserving explicit base64 support.
Changes:
- Updates the encoding default and documents compatibility differences.
- Normalizes static abort responses and updates tests.
- Extends CI’s npm publication wait window.
Review effort: Balanced
CahidArda
approved these changes
Oct 21, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.


Stops sending
Upstash-Encoding: base64by default. The server has escaped strings correctly since 2023, and base64 adds ~33% to string responses (and to AWS egress).responseEncoding: "base64"still opts back in.Docs: upstash/docs#921
Behavior changes (new default vs old default)
base64)false)"{...}"was parsed as JSONU+FFFDper invalid sequence (lossy)U+FFFDper invalid byte (still lossy)OKreply (Lua{redis.call("SET", ...)})"8""OK"pcall)Static aborted
signalresultabort(...)falsebeforefalseafterbase64beforebase64afterErrornullnull{...}/{}nullnullnullnull"Aborted"null"Aborted"null"Aborted"null"abcd"(base64-like string)"abcd""abcd""abcd""Abort works!",5trueundefinedtruetruetrueundefinedundefined{ a: 1 }null{ a: 1 }{ a: 1 }{ a: 1 }nullnullstatusTextis now always"Aborted", so non-Latin-1 reasons no longer throw aTypeErroron Node.responseEncoding: "base64"matches the old behavior exactly except for the abortnull/Errorcases above.