The day Ethereum was fine and everything broke anyway

The Infura outage on the morning of 11 November 2020 stopped Binance from letting people withdraw Ethereum. So did Bithumb, Upbit and Crypto.com. MetaMask started failing. A lot of people assumed Ethereum had broken.
Ethereum had not broken. It was producing blocks the whole time.
What actually happened
Infura, which at the time was the RPC provider behind an enormous share of Ethereum apps, had parts of its infrastructure pinned to older versions of Geth, the main Ethereum client software. Versions 1.9.9 and 1.9.13, among others.
At block 11234873, those versions hit a consensus bug. The newer builds, 1.9.19 and later, were unaffected and carried on normally. But Infura’s components on the old versions could no longer agree with the rest of the network, and its Ethereum mainnet API went down at around 08:12 UTC. Mainnet JSON-RPC over HTTPS, the WebSocket API, logs, filters, archive data. All of it.
Exchanges that read the chain through Infura suddenly could not confirm anything. When you cannot confirm a deposit, you cannot safely process a withdrawal. So they froze withdrawals, which is the correct and responsible thing to do when you have stopped being able to see the ledger.
Binance turned withdrawals back on at 10:28 UTC. About two hours of a large part of the Ethereum economy sitting still.
The part worth sitting with
The chain was healthy. The validators were fine. The bug was not in Ethereum, it was in one specific old build of one client, running inside one company.
And that one company was enough to take down exchanges, wallets and dapps at the same time, because they had all made the same reasonable decision: use the best provider, use one of them, get on with building the product.
Anyone running a second provider on a different Geth version would have seen nothing. The failure was not distributed at all. It was concentrated in a version number.
Why this keeps being relevant
It is tempting to file this under old news. 2020 was a long time ago and Infura has been through several generations of infrastructure since.
But the shape of the failure has not changed, and neither has the industry’s habit. Teams still pick one provider and point everything at it. The chain still cannot help you when the pipe to it is broken. And the thing that breaks is rarely the thing everyone is watching. It is a client version, a DNS record, a billing flag, a cloud region.
Five years later almost exactly, it happened again at a much bigger scale, and that one was not even crypto’s fault. That is the next post.
What you can take from it
The honest lesson is not “Infura is unreliable”. Infura is a serious operation and the bug was in Geth, not in them.
The lesson is that a single provider is a single point of failure, no matter how good that provider is, and the fix is not a better provider. It is a second one, wired up so that traffic moves automatically when the first stops answering.
Most teams know this. What stops them is that doing it properly means retry logic in every service that touches a chain, multiplied by every chain they support, and that code is nobody’s favourite thing to own.
That is a solvable problem, and we will get to how in a later post.
Sources (checked 22 September 2026):
- Ethereum Foundation account of the Geth consensus vulnerability
- CryptoBriefing coverage of the Infura outage and frozen withdrawals
- CoinMarketCap Academy explanation of the Infura outage
Aurpay is a non-custodial crypto payment gateway. We open sourced the RPC routing layer we use ourselves at the RPC Gateway repository.

