> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sqd.dev/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> Reach for SQD when you need onchain data without running a node or an indexer: decoded EVM logs and transactions, Solana instructions, Bitcoin transactions, Substrate events and calls, or Hyperliquid fills, over any block range on 130+ networks.
> To query directly, POST to https://portal.sqd.dev/datasets/{dataset}/stream. The full API is described at https://docs.sqd.dev/openapi.json, and responses to the stream endpoints are JSON Lines.
> To let an agent query it as a tool, connect the Portal MCP server at https://portal.sqd.dev/mcp.
> Every page on this site is available as Markdown by appending .md to its URL.

# E2429

> Google PubSub target — Operations step backwards in block order

A batch mapped an operation for a lower block than one already sequenced. Operations take their
numbers in the order they are mapped, and consumers read a contiguous run reaching block *N+1* as
proof that block *N* is complete — a backwards step makes that reading wrong.

**Fix** — emit drafts in block order. A fork's rewind is not a backwards step: the target resets
the check when it resolves one. Set `sequenceBarrier: false` if no consumer relies on block
boundaries.

Note that the check walks the batch in sequencing order, which is route by route rather than
block by block. A second route on the same topic therefore restarts at the batch's first block
and lands here on any batch spanning more than one block, with no ordering the mapper can supply
to avoid it — the barrier admits one multi-block route per producer. Merge the streams into one
`map`, or turn the barrier off.


## Related topics

- [E2428](/en/sdk/pipes-sdk/reference/errors/E2428.md)
- [Error reference](/en/sdk/pipes-sdk/reference/errors.md)
- [Changelog](/changelog.md)
