Problem
PR #162 added getReceiptWithRetry() with 3 attempts (1s/2s/3s backoff = 6s total), but Base Sepolia public RPC still returns "receipt not found" after 6 seconds. The donation indexer continues to fail with 502.
Root Cause
Base Sepolia's free public RPC (sepolia.base.org) has high propagation latency. The receipt may not be available for 10-15 seconds after waitForTransactionReceipt resolves on the client side (different RPC node).
Fix Options
Option A (recommended): Increase retry to 5 attempts with longer backoff (2s/4s/6s/8s/10s = 30s total)
Option B: Add client-side delay before calling the indexer API — wait 5s after tx receipt before triggering /api/index/donation
Option C: Both A + B for maximum reliability
Files
lib/rpc.ts — getReceiptWithRetry() — increase maxAttempts and backoff multiplier
src/components/DonateWidget.tsx — optionally add delay before indexer call
Problem
PR #162 added
getReceiptWithRetry()with 3 attempts (1s/2s/3s backoff = 6s total), but Base Sepolia public RPC still returns "receipt not found" after 6 seconds. The donation indexer continues to fail with 502.Root Cause
Base Sepolia's free public RPC (
sepolia.base.org) has high propagation latency. The receipt may not be available for 10-15 seconds afterwaitForTransactionReceiptresolves on the client side (different RPC node).Fix Options
Option A (recommended): Increase retry to 5 attempts with longer backoff (2s/4s/6s/8s/10s = 30s total)
Option B: Add client-side delay before calling the indexer API — wait 5s after tx receipt before triggering
/api/index/donationOption C: Both A + B for maximum reliability
Files
lib/rpc.ts—getReceiptWithRetry()— increase maxAttempts and backoff multipliersrc/components/DonateWidget.tsx— optionally add delay before indexer call