@apollo/client
4.3.5 · 19 Oct 2026MIT5.3M / weekRepositoryHomepagenpmAtom feed
3.14.1 is the newest release of 3.x.
In short
6 fixed
Release note
Patch Changes
Don’t prompt for DevTools installation for browser extension page
Fix a regression in 3.9.5 where a merge function that returned an incomplete result would not allow the client to refetch in order to fulfill the query.
Honor the
@nonreactivedirective when usingcache.watchFragmentor theuseFragmenthook to avoid rerendering when using these directives.Create branded
QueryReftype without exposed properties.This change deprecates
QueryReferencein favor of aQueryReftype that doesn't expose any properties.
This change also updatespreloadQueryto return a newPreloadedQueryReftype, which exposes thetoPromisefunction as it does today. This means that query refs produced byuseBackgroundQueryanduseLoadableQuerynow returnQueryReftypes that do not have access to atoPromisefunction, which was never meant to be used in combination with these hooks.While we tend to avoid any types of breaking changes in patch releases as this, this change was necessary to support an upcoming version of the React Server Component integration, which needed to omit the
toPromisefunction that would otherwise have broken at runtime.
Note that this is a TypeScript-only change. At runtime,toPromiseis still present on all queryRefs currently created by this package - but we strongly want to discourage you from accessing it in all cases except for thePreloadedQueryRefuse case.Migration is as simple as replacing all references to
QueryReferencewithQueryRef, so it should be possible to do this with a search & replace in most code bases:-import { QueryReference } from '@apollo/client' +import { QueryRef } from '@apollo/client' - function Component({ queryRef }: { queryRef: QueryReference<TData> }) { + function Component({ queryRef }: { queryRef: QueryRef<TData> }) { // ... }Remove
@nonreactivedirectives from queries passed toMockLinkto ensure they are properly matched.Fix an issue where a polled query created in React strict mode may not stop polling after the component unmounts while using the
cache-and-networkfetch policy.