Skip to content

bug: eth_getLogs on rpc.testnet.arc.network times out / fails silently for wide block ranges, breaking indexers and dApp analytics #83

@osr21

Description

@osr21

https://rpc.testnet.arc.network does not return results for eth_getLogs requests spanning the full chain (current head ~43.3M blocks). Requests hang past 60s and never return, with no limit exceeded style error.

Reproduce (ethers v6):

const p = new ethers.JsonRpcProvider('https://rpc.testnet.arc.network');
// any deployed contract, e.g. our LendingPool 0x4dc7A9BbcB1139cDeDf5274272F541461ef4d20E
await p.getLogs({
  address: '0x4dc7A9BbcB1139cDeDf5274272F541461ef4d20E',
  topics: [ethers.id('Supply(address,address,uint256)')],
  fromBlock: 0,
  toBlock: 'latest',
});   // → hangs > 60s, never resolves

Workarounds we had to use:

  • Chunking to ≤10k blocks — still 4000+ sequential requests to scan history; impractical from a browser
  • Falling back to the Arcscan v2 REST API to list contract activity

Impact:

  • Subgraph/indexer cold-starts require scanning from deploy block — currently not viable against the public RPC
  • Any dApp showing historical events (liquidations feed, position history, leaderboards) can't use the public RPC directly
  • useLogs-style React hooks degrade to "mock data" fallbacks

Asks:

  1. Document the actual eth_getLogs block-range and result-size limits in the RPC docs — currently unstated
  2. Return a clear error (e.g. -32005 limit exceeded) instead of timing out so clients can chunk automatically
  3. Consider raising the limit, or recommend a partner archive node / subgraph endpoint for indexing workloads

Discovered while building ArcLend.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions