> ## 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.

# E2428

> Google PubSub target — Producer feeds more than one topic

The change sequence is one producer-wide counter, so a producer that feeds several topics leaves
none of them with a contiguous run — and a consumer reading a gap-free run as a completeness
barrier would see holes it cannot distinguish from lost messages.

**Fix** — run one producer per topic, or set `sequenceBarrier: false` to declare that no consumer
of this producer relies on a contiguous sequence run.

Several routes may name the same topic, but with the barrier on only one of them can span more
than one block per batch: routes are mapped one after another, so the second restarts at the
batch's first block and is refused by E2429. Merge such streams into one route's `map`.


## Related topics

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