A fully-featured caching GraphQL client.
Last release 6 days ago
21 Aug 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
27 versions withdrawn
withdrawn after publishing
7 years old
723 releases · first in 2019
Release timeline
723 releases since 2019Releases
- 3.4.0-rc.1016 Jun 2021pre-release
Nothing published for this version
- 3.4.0-rc.916 Jun 2021pre-release
Nothing published for this version
- 3.4.0-rc.816 Jun 2021pre-release
Nothing published for this version
- 3.4.0-rc.715 Jun 2021pre-release
Nothing published for this version
- 3.4.0-rc.68 Jun 2021pre-release
Nothing published for this version
- 3.4.0-rc.57 Jun 2021pre-release
Nothing published for this version
- 3.4.0-rc.44 Jun 2021pre-release
Nothing published for this version
- 3.4.0-rc.32 Jun 2021pre-release
Nothing published for this version
- 3.4.0-rc.226 May 2021pre-release
Nothing published for this version
- 3.4.0-rc.125 May 2021pre-release
Nothing published for this version
- 3.4.0-rc.019 May 2021pre-release
Nothing published for this version
- 3.4.0-beta.2819 May 2021pre-release
Nothing published for this version
- 3.4.0-beta.2718 May 2021pre-release
Nothing published for this version
- 3.4.0-beta.2612 May 2021pre-release
Nothing published for this version
- 3.4.0-beta.2511 May 2021pre-release
Nothing published for this version
- 3.4.0-beta.245 May 2021pre-release
Nothing published for this version
- 3.4.0-beta.2313 Apr 2021pre-release
Nothing published for this version
- 3.4.0-beta.2210 Apr 2021pre-release
Nothing published for this version
- 3.4.0-beta.217 Apr 2021pre-release
Nothing published for this version
- 3.4.0-beta.205 Apr 2021pre-release
Nothing published for this version
- 3.4.0-beta.1926 Mar 2021pre-release
Nothing published for this version
- 3.4.0-beta.1826 Mar 2021pre-release
Nothing published for this version
- 3.4.0-beta.1725 Mar 2021pre-release
Nothing published for this version
- 3.4.0-beta.1624 Mar 2021pre-release
Nothing published for this version
- 3.4.0-beta.1517 Mar 2021pre-release
Nothing published for this version
- 3.4.0-beta.1415 Mar 2021pre-release
Nothing published for this version
- 3.4.0-beta.1311 Mar 2021pre-release
Nothing published for this version
- 3.4.0-beta.123 Mar 2021pre-release
Nothing published for this version
- 3.4.0-beta.1114 Feb 2021pre-release
Nothing published for this version
- 3.4.0-beta.109 Feb 2021pre-release
Nothing published for this version
- 3.4.0-beta.99 Feb 2021pre-release
Nothing published for this version
- 3.4.0-beta.85 Feb 2021pre-release
Nothing published for this version
- 3.4.0-beta.74 Feb 2021pre-release
Nothing published for this version
- 3.4.0-beta.629 Jan 2021pre-release
Nothing published for this version
- 3.4.0-beta.529 Jan 2021pre-release
Nothing published for this version
- 3.4.0-beta.416 Dec 2020pre-release
Nothing published for this version
- 3.4.0-beta.312 Dec 2020pre-release
Nothing published for this version
- 3.4.0-beta.24 Dec 2020pre-release
Nothing published for this version
- 3.4.0-beta.13 Dec 2020pre-release
Nothing published for this version
- 3.4.0-beta.01 Dec 2020pre-release
Nothing published for this version
- 3.3.216 Jul 2021
Release notes2 sources agree
Open source →Bug fixes
-
Fix race condition in
@apollo/client/link/contextthat could leak subscriptions if the subscription is cancelled beforeoperation.setContextis called. <br/> @sofianhn in #8399 -
Prefer
existing.pageInfo.startCursorandendCursor(if defined) inreadfunction ofrelayStylePaginationpolicies. <br/> @benjamn in #8438
Improvements
-
- 3.3.208 Jun 2021
- 3.3.1918 May 2021
Release notes2 sources agree
Open source →Bug fixes
- Use
export ... fromsyntax to re-exportgraphql-tagnamed exports, making tree-shaking easier for some bundlers. <br/> @benjamn in #8221
Documentation
- Replace Spectrum references with community.apollographql.com. <br/> @hwillson in #8238
- Use
- 3.3.1813 May 2021
- 3.3.1711 May 2021
- 3.3.1630 Apr 2021
Release notes2 sources agree
Open source →Bug fixes
-
Prevent
undefinedmutation result inuseMutation. <br/> @jcreighton in #8018 -
Fix
useReactiveVarnot rerendering for successive synchronous calls. <br/> @brainkim in #8022 -
Support
batchDebounceoption forBatchLinkandBatchHttpLink. <br/> @dannycochran in #8024
-
- 3.3.1513 Apr 2021
Release notes2 sources agree
Open source →-
Increment
queryInfo.lastRequestIdonly when making a network request through theApolloLinkchain, rather than every timefetchQueryByPolicyis called. <br/> @dannycochran in #7956 -
During server-side rendering, allow initial
useQuerycalls to return final{ loading: false, data }results when the cache already contains the necessary data. <br/> @benjamn in #7983
-
- 3.3.145 Apr 2021
Release notes2 sources agree
Open source →Improvements
- Adjust TypeScript types to allow
keyFieldsandkeyArgsfunctions to returnfalse. <br/> @CarsonF and @benjamn in #7900
Bug fixes
-
Prevent
RenderPromisesmemory leak by callingrenderPromises.clear()aftergetMarkupFromTreefinishes. <br/> @benjamn in #7943 -
Cancel pending notify timeout when stopping a
QueryInfoobject. <br/> @hollandThomas in #7935 -
Fix infinite rendering bug related to
useSubscription. <br/> @brainkim in #7917
- Adjust TypeScript types to allow
- 3.3.1324 Mar 2021
Release notes2 sources agree
Open source →Improvements
-
Add missing
contextoption touseSubscription. <br /> @jcreighton in #7860 -
Remove unnecessary TypeScript global
Observable<T>["@@observable"]method declaration. <br/> @benjamn in #7888 -
Prevent skipped/observerless
ObservableQuerys from being refetched byrefetchQueries. <br/> @dannycochran in #7877
-
- 3.3.1215 Mar 2021
Release notes2 sources agree
Open source →Bug fixes
-
Maintain serial ordering of
asyncMapmapping function calls, and prevent potential unhandledPromiserejection errors. <br/> @benjamn in #7818 -
Relax incompatible
children?: React.ReactElementfield type inMockedProviderPropsinterface. <br/> @kevinperaza in #7833
-
- 3.3.1115 Feb 2021
- 3.3.1014 Feb 2021
Release notes2 sources agree
Open source →Bug fixes
-
Revert PR #7276, but test that garbage collection reclaims torn-down
ObservableQueryobjects. <br/> @benjamn in #7695 -
Reset
QueryInfo.diffandQueryInfo.dirtyafter canceling notify timeout inQueryInfo.markResultandQueryInfo.markError. <br/> @jcreighton in #7696
Improvements
-
Avoid calling
forceUpdatewhen component is unmounted. <br/> @DylanVann in #7655 -
The
codemods/top-level directory has been moved into thescripts/directory. <br/> @benjamn in #7675
-
- 3.3.99 Feb 2021
Release notes2 sources agree
Open source →Bug Fixes
- Prevent reactive variables from retaining otherwise unreachable
InMemoryCacheobjects. <br/> @benjamn in #7661
Improvements
- The
graphql-tagdependency has been updated to version 2.12.0, after converting its repository to use TypeScript and ECMAScript module syntax. There should be no visible changes in behavior, though the internal changes seemed significant enough to mention here. <br/> @abdonrd in graphql-tag#273 and @PowerKiKi in graphql-tag#325
- Prevent reactive variables from retaining otherwise unreachable
- 3.3.85 Feb 2021
Release notes2 sources agree
Open source →Bug Fixes
-
Catch updates in
useReactiveVarwith an additional check. <br/> @jcreighton in #7652 -
Reactivate forgotten reactive variables whenever
InMemoryCacheacquires its first watcher. <br/> @benjamn in #7657 -
Backport
Symbol.speciesfix forConcastandObservableQueryfromrelease-3.4, fixing subscriptions in React Native Android when the Hermes JavaScript engine is enabled (among other benefits). <br/> @benjamn in #7403 and #7660
-
- 3.3.714 Jan 2021
Release notes2 sources agree
Open source →Bug Fixes
-
Fix a regression due to #7310 that caused
loadingalways to betrueforskip: trueresults during server-side rendering. <br/> @rgrove in #7567 -
Avoid duplicate
useReactiveVarlisteners when rendering inReact.StrictMode. <br/> @jcreighton in #7581
Improvements
- Set
displayNameonApolloContextobjects for easier debugging. <br/> @dulmandakh in #7550
-
- 3.3.611 Dec 2020
Release notes2 sources agree
Open source →Bug Fixes
-
Immediately apply
queryType: true,mutationType: true, andsubscriptionType: truetype policies, rather than waiting for the first time the policy is used, fixing a regression introduced by #7065. <br/> @benjamn in #7463 -
Check that
windowis defined even whenconnectToDevToolsistrue. <br/> @yasupeke in #7434
Improvements
-
- 3.3.510 Dec 2020
- 3.3.44 Dec 2020
Release notes2 sources agree
Open source →Improvements
- Update
ts-invariantto avoid potential Content Security Policy-violatingFunctionfallback, thanks to a clever newglobalThispolyfill technique. <br/> @benjamn in #7414
- Update
- 3.3.32 Dec 2020
- 3.3.21 Dec 2020
Release notes2 sources agree
Open source →⚠️ Note: This version of
@apollo/clientcontains no behavioral changes since version 3.3.1Documentation
-
The Pagination article has been completely rewritten (and split into multiple pages) to cover Apollo Client 3 field policies. <br/> @benjamn and @StephenBarlow in #7175
-
Revamp local state tutorial chapter for Apollo Client 3, including reactive variables. <br/> @StephenBarlow in
apollographql@apollo#1050 -
Add examples of using
ApolloLinkto modify response data asynchronously. <br/> @alichry in #7332 -
Consolidate separate v2.4, v2.5, and v2.6 documentation versions into one v2 version. <br/> @jgarrow in #7378
-