gRPC stream

Slot skipped — missing messages in stream

Your stream is processing slot N and then suddenly processes N+4 — three slots vanished. Either the Solana network genuinely skipped those slots (normal, happens several times per hour), or your consumer fell behind and the provider dropped messages to keep up.

Root causes

Ranked by frequency. First cause is the one to check first.

  1. 01Network-skipped slots: Solana validators didn't produce blocks at those heights. This is a protocol-level event, not an infrastructure problem. ~1–3% of slots are skipped under normal conditions.
  2. 02Consumer backpressure: your processing loop is too slow, the server's HTTP/2 flow control window fills, and the provider drops buffered messages rather than pile up latency.
  3. 03Provider-side failover: a brief gap during a server restart. Subglow maintains hot-standby and a 2s gap is the worst case.

Fix steps

  1. 1

    Distinguish network skips from consumer drops

    Subscribe to `slots_update` alongside transactions. You'll see every slot status transition, including skipped. If the skipped slot appears in slots_update but the corresponding transactions don't arrive, you've been throttled — your consumer was too slow.

  2. 2

    Fix the slow consumer

    Make the inner loop O(1) — never do a blocking DB write or HTTP call inside the `for await`. Push parsed updates to an async queue and process them in parallel. The gRPC stream should be the fastest thing in your pipeline.

  3. 3

    Backfill via JSON-RPC

    For slots you missed, call `getBlock(slot, { transactionDetails: 'full', maxSupportedTransactionVersion: 0 })` on your RPC endpoint and reparse. This is how production sniper bots achieve zero-miss: they gRPC-stream the live edge and JSON-RPC-backfill any gap.

Related errors

Want an endpoint that just works?

Subglow is flat-priced Solana gRPC + JSON-RPC on a single API key. Pre-parsed JSON, dedicated sendTransaction bucket, 99.9% latency SLA on Dedicated. No credit juggling, no surprise bills.