ioredis breaking changes
Every breaking API change we have recorded in ioredis on npm: 850 breaking changes in 1 version. Below are its newest version, removals and renames first, each with its source.
Newest change July 31, 2026

On this page
6.0.0
- Removed
Node.js versions older than 20 are no longer supported. Upgrade Node.js to 20 or newer before upgrading ioredis. github.com - Default changed
Default connection handling was changed to be more resilient to failures, so code that relies on the previous reconnect behavior may need review. github.com - Default changed
protocol
Connections now use RESP3 unless configured otherwise. To keep the v5 wire protocol, set the protocol option to 2. github.com - Signature changed
ChainableCommander
Was interface ChainableCommander extends RedisCommander<{type: "pipeline";}>; now interface ChainableCommander<Mapping extends "resp2" | "resp3" = "resp2"> extends RedisCommander<{type: "pipeline"; mapping: Mapping;}>. npmjs.com - Signature changed
ClientContext
Was type ClientContext = {type: keyof ResultTypes<unknown, unknown>;}; now type ClientContext = {type: keyof ResultTypes<unknown, unknown>; mapping?: "resp2" | "resp3";}. npmjs.com - Signature changed
Cluster
Was class Cluster extends Commander interface Cluster extends EventEmitter interface Cluster extends Transaction; now class Cluster<ReplyMapping extends ReplyMappingMode = "legacy"> extends Commander<{type: "default"; mapping: ReplyMapping... npmjs.com - Signature changed
Cluster.acl
Was acl(...args: [subcommand: "DELUSER", ...usernames: (string | Buffer)[], callback: Callback<number>]): Result<number, Context> acl(...args: [subcommand: "DELUSER", ...usernames: (string | Buffer)[]]): Result<number, Context>... npmjs.com - Signature changed
Cluster.aclBuffer
Was aclBuffer(...args: [subcommand: "DRYRUN", username: string | Buffer, command: string | Buffer, ...args: (string | Buffer | number)[], callback: Callback<Buffer>]): Result<Buffer, Context> aclBuffer(...args: [subcommand: "DRYRUN"... npmjs.com - Signature changed
Cluster.asking
Was asking(callback?: Callback<"OK">): Result<"OK", Context>; now asking(callback?: Callback<'OK'>): Result<'OK', Context>. npmjs.com - Signature changed
Cluster.auth
Was auth(password: string | Buffer, callback?: Callback<"OK">): Result<"OK", Context> auth(username: string | Buffer, password: string | Buffer, callback?: Callback<"OK">): Result<"OK", Context>; now auth(password: string | Buffer... npmjs.com
And 840 more in this version.
Check your code
These are the changes. To see which of them reach your code, scan a public repository, or have your coding agent call check_code with your manifest or lockfile over MCP. The API reads every change in every version, not only the newest. On Team and up, a fix pull request opens for the changes that reach a connected repository. Nothing merges or deploys.

Put your code on continuous management.
Scan a public repository now, or give your agent one line.
See how out of date your code is.
Tell your agent what changed since it was trained.
claude mcp add --transport http since https://api.since.dev/mcp