---
title: "ioredis Breaking Changes on npm | Since.dev"
description: "What each ioredis release removed, renamed or changed: 850 breaking changes in 1 version on npm, each with its source."
canonical_url: https://since.dev/packages/npm/ioredis
last_updated: 2026-07-31
---

# 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

## 6.0.0

850 breaking changes, first published July 31, 2026.

- **Removed**  

Node.js versions older than 20 are no longer supported. Upgrade Node.js to 20 or newer before upgrading ioredis. [github.com](https://github.com/redis/ioredis/releases/tag/v6.0.0)
- **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](https://github.com/redis/ioredis/releases/tag/v6.0.0)
- **Default changed** `protocol`  

Connections now use RESP3 unless configured otherwise. To keep the v5 wire protocol, set the protocol option to 2. [github.com](https://github.com/redis/ioredis/releases/tag/v6.0.0)
- **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](https://www.npmjs.com/package/ioredis/v/6.0.0)
- **Signature changed** `ClientContext`  

Was type ClientContext = {type: keyof ResultTypes<unknown, unknown>;}; now type ClientContext = {type: keyof ResultTypes<unknown, unknown>; mapping?: "resp2" | "resp3";}. [npmjs.com](https://www.npmjs.com/package/ioredis/v/6.0.0)
- **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](https://www.npmjs.com/package/ioredis/v/6.0.0)
- **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](https://www.npmjs.com/package/ioredis/v/6.0.0)
- **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](https://www.npmjs.com/package/ioredis/v/6.0.0)
- **Signature changed** `Cluster.asking`  

Was asking(callback?: Callback<"OK">): Result<"OK", Context>; now asking(callback?: Callback<'OK'>): Result<'OK', Context>. [npmjs.com](https://www.npmjs.com/package/ioredis/v/6.0.0)
- **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](https://www.npmjs.com/package/ioredis/v/6.0.0)

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](https://since.dev/scan.md), or have your coding agent call `check_code` with your manifest or lockfile over [MCP](https://since.dev/docs.md#mcp). [The API](https://since.dev/docs.md#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.

[Scan a repository](https://since.dev/scan.md). Any public GitHub repository. No sign-in.

### Tell your agent what changed since it was trained.

`claude mcp add --transport http since https://api.since.dev/mcp`

---

Every page on this site as Markdown: https://since.dev/sitemap.md. For agents: https://since.dev/llms.txt.
