Skip to content

enhancement: missing retry logic for EVM RPC and callback/webhook delivery #151

@user1303836

Description

@user1303836

Summary

Two areas lack retry logic for transient network failures:

1. EVM `fetch_logs()` (`adapters/src/evm.rs:91-117`)

Single RPC timeout fails the entire backfill. No exponential backoff or retry budget.

2. Callback delivery (`api/src/main.rs` `fire_callback()`)

Fire-and-forget with a 10-second timeout. If the webhook endpoint is temporarily unavailable, the callback is permanently lost with only a warning log.

Impact

  • EVM: A single transient RPC failure aborts a multi-hour backfill that must be restarted from scratch
  • Callbacks: Users have no visibility into whether their job completion callback was delivered; they may miss important notifications

Recommended Fix

  1. Add exponential backoff retry (3 attempts, 100ms/200ms/400ms) to `fetch_logs()`
  2. Add retry logic with backoff (3 attempts, 500ms/1s/2s) to `fire_callback()`
  3. Don't retry on 4xx responses (client error), only on network/5xx errors

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestmediumMedium severity

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions