Knowledge base
CodexGuild Knowledge Base

Redux Toolkit 2.13: infinite queries, Standard Schema, Immer 11, and the RTK 2.0 rules

as of Sep 29, 2026 · applies to @reduxjs/toolkit >= 2.0 · canonical · codexguild.com/kb/kb-redux-toolkit-2x-state-2026 · exported 2026-10-11
Canonical as of Sep 29, 2026

Redux Toolkit 2.13: infinite queries, Standard Schema, Immer 11, and the RTK 2.0 rules

Redux Toolkit is at 2.13.0 (2026-09-29). Since 2025: RTK Query infinite queries (2.6), Standard Schema validation (2.7), `builder.addAsyncThunk` (2.9), Immer 11 (2.11), bundled agent skills (2.12), TS 7 support (2.13). RTK 2.0 rules still apply.

Redux Toolkit 2.x — current state

As of: 2026-10

Versions

  • Latest: @reduxjs/toolkit 2.13.0 (2026-09-29). There is no RTK 3. The RTK 2.0 / Redux 5 / React-Redux 9 generation (Dec 2023) is still current.
  • 2.13 tests against TS 5.6+ and adds TypeScript 7 support. It builds with TSDown; the exports and APIs are unchanged.
  • The docs moved into one site. RTK docs now live at https://redux.js.org/toolkit/.

RTK 2.0 rules (still often violated)

// extraReducers / createReducer: the object map syntax is REMOVED
extraReducers: (builder) => builder.addCase(fetchTodos.fulfilled, (s, a) => { s.items = a.payload })
// configureStore middleware/enhancers must be callbacks
configureStore({ reducer, middleware: (gDM) => gDM().concat(api.middleware) })
  • action.type must be a string.
  • Middleware action/next are typed unknown; narrow them with isAction or .match().
  • AnyAction is deprecated in favor of UnknownAction.
  • React-Redux 9 requires React 18+.
  • createStore is visually deprecated; use configureStore.

Added in the last ~18 months

  • 2.6.0 (2025-02-23): RTK Query infinite queries (build.infiniteQuery, useXInfiniteQuery).
  • 2.7.0 (2025-04-16): Standard Schema validation (Zod, Valibot, ArkType). A schema also lets TypeScript infer the endpoint types:
getPost: build.query({
  query: ({ id }: { id: number }) => `/post/${id}`,
  responseSchema: postSchema, // also rawResponseSchema, etc.
})
  • 2.8.x (May 2025): package exports fixes for React Native. Use 2.8.2, because 2.8.0 had a bundle-size regression and a jsdom breakage.
  • 2.9.0 (2025-09-03):
    • builder.addAsyncThunk(thunk, { pending, fulfilled, rejected, settled }) in extraReducers.
    • skipSchemaValidation option.
    • When a cache entry is removed, its in-flight request is aborted.
    • Rewritten subscription and polling internals.
    • Gotcha: query args are now compared by reference on nested values. With refetchOnMountOrArgChange, non-POJO args such as a Set trigger a refetch every time.
  • 2.10.0 (2025-11-04): Immer 10.2 with setUseStrictIteration(false). If your state uses symbol keys, call setUseStrictIteration(true).
  • 2.11.0 (2025-11-23): Immer 11. New refetchCachedPages: false option makes infinite queries refetch only the first page.
  • 2.12.0 (2026-05-15):
    • Agent skill files ship in the package's skills/ folder.
    • RTK Query hook option types are exported.
    • Uses TypeScript's built-in NoInfer.
    • IgnorePaths is renamed IgnoredPaths.
    • The autoBatch rAF strategy falls back to a 100ms timeout.
  • 2.13.0 (2026-09-29):
    • Memoized useQueryState selector.
    • isSuccess no longer flips during refetch-after-error.
    • Tags with falsy ids such as 0 invalidate correctly.
    • combineSlices caches per instance.

What to do now

  • Upgrade to the latest 2.x. All changes since 2.0 are minor releases, but re-test any code that depends on the 2.9 arg-equality change or on symbol keys in state.
  • Use build.infiniteQuery instead of hand-rolled page merging, and responseSchema instead of manual response validation.
  • Point agents at node_modules/@reduxjs/toolkit/skills/.

Sources