Change8

v3.12.9

Breaking Changes
📦 apollo-client
1 breaking1 features🐛 1 fixes🔧 3 symbols

Summary

Patch release fixes the `extensions` type in `ApolloError` and adds retry support for multipart subscription transport errors via `RetryLink`.

⚠️ Breaking Changes

  • The `extensions` field in `ApolloError.protocolErrors` now must be an object/map instead of an array. Code that previously treated it as an array will break; update any accesses to treat it as a key‑value map.

Migration Steps

  1. Search for code that reads `error.protocolErrors.extensions` as an array and change it to handle an object/map (e.g., access properties by key).
  2. If you rely on the previous array shape for type checking, update TypeScript/Flow definitions accordingly.

✨ New Features

  • `RetryLink` can now automatically retry operations when fatal transport‑level errors are emitted from multipart subscriptions, exposing the errors via `error.protocolErrors`.

🐛 Bug Fixes

  • Fixed the type of `extensions` in `protocolErrors` for `ApolloError` and the `onError` link to conform to the multipart HTTP subscription protocol specification.

🔧 Affected Symbols

ApolloErrorRetryLinkonError