github TanStack/query @tanstack/query-core@5.102.0

latest release: release-2026-08-22-1856
11 hours ago

Minor Changes

  • #10658 c6fc17c - add query and infiniteQuery methods, deprecate old imperative methods

Patch Changes

  • #11161 34f7cee - fix(query-core): clear a stale select error when the observer switches to a query without data, and reset isPlaceholderData on select-error results to match the declared result types, so a previous query's select error no longer leaks into the new result

  • #11253 b4368c4 - Improve hydration performance by skipping no-op data transforms and default error-redaction callbacks.
    Export dehydrateQuery.

  • #11214 5bb089d - Reduce observer churn overhead by removing observers in place instead of copying the observer list for every unsubscribe.

  • #11011 ba4650c - fix(query-core): reset isPlaceholderData when select throws on placeholder data

  • #11224 294d4e6 - Fix queryOptions and infiniteQueryOptions return types so exported inferred options can be emitted in declaration files without leaking internal data tag symbols.

  • #11225 1f631b3 - Skip unused result tracking when notifying useQueries listeners without a combine function.

  • #11215 01a02bf - Avoid repeatedly synchronizing the same tracked property across all observers in useQueries.

  • #11172 18c1c1e - Reattach MutationObserver to its current mutation when a listener subscribes again, so a useMutation result no longer stays pending after React tears down and re-establishes the subscription mid-mutation.

  • #11128 5448063 - Ignore a retained pendingThenable settlement callback invoked after the thenable has settled. Holding a reference to resolve/reject and calling it later used to overwrite status and reason even though the underlying promise had already settled, leaving the thenable advertising a state that disagreed with its value.

  • #8737 2215bb0 - fix: make mutation variables optional when undefined extends TVariables

  • #11221 1ef4208 - Remove experimental render-time prefetching and the promise property from query results.

  • #11218 5981771 - Release a mutation's retryer once its execution settles, so the settled promise no longer keeps that mutation's result, variables and context in memory for as long as the mutation cache retains it.

  • #11163 4a9bef6 - Release a query's retryer once its fetch settles, so the settled promise no longer keeps that fetch's raw result in memory alongside the structurally shared state.data (or after the query is reset or removed).

  • #11036 bef4bc7 - Resolve suspense when query data is set programmatically via setQueryData or streamedQuery. Previously, fetchOptimistic returned only the fetch promise, which left the Suspense boundary stuck until the queryFn completed — even when data already existed in the cache. The fix uses Promise.race with a cache subscriber to release suspense as soon as data becomes available.

  • #11234 9656dc4 - Notify every query observer when another observer unsubscribes synchronously during the same query update.

  • #11211 326aaf1 - fix: resetQueries now preserves the queries matched before query.reset() changes their state.

  • #11065 3e83601 - Memoize falsy combine results when the function and query results are unchanged.

Don't miss a new query release

NewReleases is sending notifications on new releases.