RPC error bufferComplete=false: feed resume window does not cover the cursor

Last updated:

At a glance

Error details
PropertyValue
Applies toRobinhood Chain (chain ID 4663)
Frame fieldresume.bufferComplete
Window8,192 frames / 64 MiB / 5 minutes, whichever comes first
Lost on restartYes — the window is in process memory

Cause

The resume control frame reports bufferComplete=false when the bounded window (at most 8,192 frames, 64 MiB or five minutes) cannot deliver every sequence after your cursor. That happens when the cursor is older than earliestAvailableSequence, when it is ahead of latestAvailableSequence, or when the window is empty — the normal state right after a service restart, because the buffer lives in process memory.

Solution

  1. Read earliestAvailableSequence and latestAvailableSequence from the resume frame to see exactly which range is missing.
  2. Consume the available tail, then reconcile the gap over JSON-RPC: sequenceNumber is the L2 block number, so eth_getBlockByNumber, eth_getBlockReceipts and eth_getLogs map directly.
  3. Persist your processed cursor before acknowledging downstream work so the gap is always computable.

Example

{
  "version": 1,
  "resume": {
    "requestedAfterSequence": 56798024,
    "earliestAvailableSequence": 56798100,
    "latestAvailableSequence": 56798130,
    "bufferComplete": false
  }
}

FAQ

Is this an error?
No, it is an honest report: the feed tells you the window cannot cover your cursor instead of silently skipping data.
Can I replay an arbitrary past day?
No. The feed is a live stream with a short operational buffer, not a historical API.