# What changed in nuqs

> 53 changes in nuqs 2 from its official release notes, upgrade guides and advisories: 5 breaking, 5 new APIs and options. Each one cited. Sources checked 2026-10-18. HTML: https://unstale.sh/npm/nuqs/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## nuqs 2

### Breaking changes

- parseAsIsoDate and IsoDateTime reject impossible calendar dates. (2.9.6) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.6)
- Strict loaders reject invalid empty queries. (2.9.4) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.4)
- Invalid timestamps are rejected. (2.9.4) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.4)
- Duplicate library copies now share internal state. (2.9.1) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.1)
- Debounced state updates no longer flush. (2.7.2) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.7.2)

### New APIs and options

- The React adapter can seed SSR search params via serverSearch. (2.10.0) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.10.0)
- Adds history to adapters’ defaultOptions. (2.9.0) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.0)
- Adds support for React Router v8. (2.9.0) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.0)
- Export the CreateLoaderOptions type so developers can use it in their code. (2.8.6) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.8.6)
- Adds support for React Router v5. (2.8.0) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.8.0)

### Performance

- The useQueryStates bundle size is trimmed. (2.10.1) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.10.1)

### Behavior and default changes

- The debounce callback is passed at push time. (2.10.0) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.10.0)
- Query keys on the Object prototype are supported. (2.9.5) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.5)
- Server runtimes that do not provide process are supported. (2.9.5) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.5)
- Updates location.search synchronously. (2.9.0) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.0)
- Server-side debug detection now uses process.env.DEBUG. (2.8.9) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.8.9)
- Passing undefined means leave the value as-is in useQueryStates. (2.8.5) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.8.5)
- Makes boolean parsing case insensitive. (2.7.3) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.7.3)

### Fixes and other changes

- Flushed queue values are kept until the adapter shows them. (2.10.2) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.10.2)
- Pending query state stays in its transition lane. (2.10.2) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.10.2)
- Render once on mount when the URL contains a value. (2.10.1) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.10.1)
- Recover state after a navigation render is discarded. (2.10.1) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.10.1)
- The testing adapter's URL update queue is reset once per mount. (2.10.1) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.10.1)
- React adapter queues are reset on popstate. (2.10.0) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.10.0)
- Fragment-only history updates preserve the query. (2.9.6) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.6)
- Pending URL updates are canceled on history navigation. (2.9.6) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.6)
- Fragments are ignored in query-only URLs. (2.9.6) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.6)
- Comma-separated values are distinguished from repeated query keys. (2.9.5) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.5)
- Explicit empty native arrays are preserved. (2.9.5) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.5)
- The queue recovers after URL middleware errors. (2.9.5) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.5)
- Reactivity now works for startTransition callbacks. (2.9.5) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.5)
- Negative hexadecimal values round-trip correctly. (2.9.4) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.4)
- Credentials are preserved in URL serializer bases. (2.9.4) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.4)
- Options and defaults are refreshed correctly. (2.9.4) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.4)
- Preserves query state across concurrent rebases. (2.9.3) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.3)
- Recovers state after a render is discarded. (2.9.2) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.2)
- Supports multi-value search params in createSearchParamsCache. (2.9.1) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.1)
- Preserves the hash fragment in createSerializer bases. (2.9.1) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.1)
- Fixes unwatched keys leaking through filterSearchParams. (2.9.1) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.1)
- Applies call > parser > global precedence for limitUrlUpdates. (2.9.1) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.1)
- Transitions remain pending while React Router loaders run. (2.9.1) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.1)
- Fixes stale values under Activity. (2.9.0) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.0)
- Fixes incorrect transient state when updating in useEffect. (2.9.0) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.0)
- Fixes stale URL values when revisiting a page under Next.js cacheComponents. (2.9.0) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.0)
- Fixes stale search parameters leaking across React Router navigation. (2.9.0) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.0)
- Fixes cross-page transitions in TanStack Router. (2.9.0) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.0)
- Prevents infinite re-renders with TSR viewport preloading. (2.9.0) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.9.0)
- Resets the queue after updates in the Next.js app router. (2.8.8) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.8.8)
- React Router adapters now wait for navigation before syncing. (2.8.7) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.8.7)
- The directive was removed from .d.ts definition files. (2.8.4) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.8.4)
- Forwards processUrlSearchParams through the debounce queue. (2.8.3) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.8.3)
- Pass the full pathname and search in TSR to avoid trailing slashes. (2.8.1) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.8.1)
- Fixes a TypeError in the serializer when an array has a default value. (2.7.3) — [release notes](https://github.com/47ng/nuqs/releases/tag/v2.7.3)
