You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
[19.4.0] - 2026-10-29
Fixed
Dictionary v1 queries kept every parsed query document in memory: each batch's query text is new, and both graphql-tag's cache and Apollo Client's QueryManager.transformCache retained it, so a long sync's memory grew without bound. Queries are now posted as plain GraphQL over HTTP and nothing is parsed or cached (#3048)
Dictionary v1 queries threw a TypeError on a null body, {data: null} or errors that isn't an array, and their errors dropped the response body, so the distinct fallback missed non-standard error responses. The error now keeps the body and includes it in its message (#3051)
A timed-out dictionary v1 query kept running in the background with its connection and response body. It is now aborted a second after the query times out (#3051)
Rewinding a fork found while registering an unfinalized block failed the assertion Expect best header and checking header to be at the same height whenever a stored block was at or below the finalized height, so the node exited instead of rewinding. A fork found while registering now only signals a rewind: the stored blocks at or below the finalized height are checked against the finalized chain as for any other block, and the highest of them that matches, or the finalized block, is the rewind target. This also stops a stored fork block being chosen as the target when the backfill reports the fork (#3052)
Changed
DictionaryV1 sends queries with a protected query() method instead of an Apollo client, and @apollo/client is no longer a dependency (#3048)