ethereum-optimism / ethereum-optimism/optimism
bug(op-node): L2 RPC request occasionally failing with custom Base Sequencer config
- Dominant language
- Go
- Stars
- 6.5k
- Forks
- 4k
- Avg merge
- 2d 38m
- Merged PRs (30d)
- 164
Description
**Bug Description**
When attempting to deploy smart contracts and execute L2 transactions through a custom Base Sequencer configuration, RPC requests intermittently fail with timeout errors. This issue affects contract deployment workflows and transaction execution reliability on Base Mainnet.
**Steps to Reproduce**
1. Configure a custom Base Sequencer setup pointing to Base Mainnet (Chain ID: 8453)
2. Set up RPC endpoint: `https://mainnet.base.org`
3. Attempt to deploy a standard ERC-20 contract using the following configuration:
```javascript
const provider = new ethers.JsonRpcProvider('https://mainnet.base.org');
const wallet = new ethers.Wallet(privateKey, provider);
const contractFactory = new ethers.ContractFactory(abi, bytecode, wallet);
```
4. Execute contract deployment transaction
5. Repeat the deployment process 10 times
**This was reproduced using an RPC pointed at Base Mainnet and occurs approximately 1 in 10 attempts.**
**Expected Behavior**
The transaction/query should succeed consistently. Contract deployments should complete without RPC timeouts, and all L2 transactions should be processed reliably through the Base Sequencer.
**Actual Behavior**
It returns an RPC error approximately 10% of the time:
```
Error: timeout of 30000ms exceeded
at XMLHttpRequest.handleTimeout
RPC Error: Request timeout
Code: -32603
Message: Internal JSON-RPC error
```
**Environment Information**
- **Chain**: Base Mainnet (Chain ID: 8453)
- **RPC Endpoint**: https://mainnet.base.org
- **Node Version**: v18.17.0
- **ethers.js Version**: ^6.8.0
- **OS**: macOS 14.1
- **Network**: Stable broadband connection (100+ Mbps)
- **Gas Configuration**: Standard Base Mainnet settings
- **Sequencer Config**: Custom configuration with standard Base parameters
**Additional Context**
- Issue appears to be related to Base Sequencer load balancing during high network activity
- Occurs more frequently during peak usage hours (UTC 14:00-18:00)
- Workaround: Implementing retry logic with exponential backoff reduces failure rate to ~2%
- Similar pattern observed by other Base developers in community Discord
- Does not occur when using alternative RPC providers (Alchemy, Infura)
**Impact**
- Affects production dApp reliability on Base Mainnet
- Causes failed contract deployments requiring manual retry
- Degrades user experience for Base ecosystem applications
- Increases development complexity due to required error handling
Contributor guide
Assessment
This issue has not been assessed yet.