JSON-RPC

Node is behind (slot lag on RPC)

Your RPC endpoint is lagging behind the tip of the chain. Symptoms: `getSlot` returns a number much lower than Solana Explorer, `getAccountInfo` returns stale data, `getLatestBlockhash` gives expired blockhashes. Usually a shared-endpoint issue.

Root causes

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

  1. 01Public RPC (api.mainnet-beta.solana.com) running 10+ seconds behind tip during mainnet congestion.
  2. 02Credit-metered provider serving `getSlot` from a cheaper secondary node that's a few slots behind.
  3. 03Load balancer routing to a node that's mid-catchup after a restart.
  4. 04`commitment: 'finalized'` used for reads — finalized is ~13 seconds behind tip by design.

Fix steps

  1. 1

    Use commitment: processed or confirmed for reads

    `processed` is the newest but may be reorged; `confirmed` is the best read/safety trade-off for trading bots (2 slots behind tip). Only use `finalized` for audit-grade workloads.

  2. 2

    Measure your endpoint's slot lag

    Every minute, call `getSlot` on your endpoint and compare to a reference (Helius public, QuickNode demo, or Solana explorer). If your endpoint is >5 slots behind consistently, switch.

  3. 3

    Use a flat-priced endpoint with predictable latency

    Subglow RPC runs on the same validator-adjacent fleet as the gRPC stream — your reads and streams are always in sync within one slot. Credit-metered providers route to different node pools per method, so `getSlot` and `getAccountInfo` can disagree.

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.