AWS Outage Sent $4.2 Trillion Estimates to Customers with Actual Spending of Pennies

For nearly 48 hours, an error in the pricing subsystem of Amazon Web Services displayed fictitious billion-dollar charges; Amazon completed the fix on July 18 at noon Pacific Time.
The Scale of the Error
On the evening of Thursday, July 16, an Amazon Web Services user opened the cost management console and saw a monthly estimate of $2.5 billion. Their actual spending in the previous 30 days had been $0.19. Other reports collected by The Register and TechCrunch included projected charges of up to $4.2 trillion, also for accounts with histories of a few dollars per month.
Amazon confirmed in its service health dashboard that the cause was "a unit pricing error in the estimated billing computation subsystem." The affected system is Cost Explorer and the Billing and Cost Management Console, tools used by corporate FinOps teams for near real-time monitoring of spending. Actual charges, invoices, and payment processing were not affected.
The Sequence
On the morning of Friday, July 17, Amazon published that "the rollback of a recent change did not resolve the issue." The company identified the root cause hours later and announced it would begin reprocessing data from the Cost Management Console for all customers. The official timeline for restoring the correct values was Saturday, July 18, at noon Pacific Time.
The outage lasted less than 48 hours. But for FinOps teams in multinational corporations operating hundreds of linked AWS accounts with automated alerting systems, the impact was operationally real: cost triggers set to block new provisioning or escalate alerts to CFOs were activated by figures that did not correspond to any actual usage. Amazon did not publish the number of affected accounts.
Why This Type of Error Matters
AWS generated $107 billion in revenue over the last four quarters and will announce second-quarter results on July 30; analysts expect a 28% growth in revenue, the fastest pace in 15 consecutive quarters. Alphabet will release Google Cloud figures on July 27. Microsoft Azure and Google Cloud did not record any billing issues during the same period.
Corporate reliance on the Cost Explorer estimate data has grown proportionately with the adoption of multi-region and multi-account architectures. Many companies consult console estimates daily for IT budget approvals, as the final monthly invoice arrives too late to support resource allocation decisions. When this cost proxy is consulted more than actual data, an error in the proxy has a disproportionate impact. For corporate cloud architects, this incident concretizes a risk treated, until now, as hypothetical.
Country Context
In Brazil, where AWS operates regions in São Paulo and Brasília, dollar-denominated contracts with currency fluctuation clauses make Cost Explorer an operational reference for currency exchange. A false positive for 48 hours can trigger currency revisions and spending approval blocks without any real justification.
In the UK, regulations from the Financial Conduct Authority (FCA) require traceability of IT spending in financial institutions. When estimated data diverges from actual data, compliance teams at British banks generate additional reconciliation work that regulators do not consider inevitable or acceptable as normal practice.
What Remains Unknown
Amazon did not publish the number of affected accounts, the specific nature of the change that caused the error, nor did it confirm whether customers who triggered automated alerts were individually notified. As a standard practice, a Post-Incident Review is published within 30 days for events classified as high impact.
The issue has been classified as a presentation layer failure, not a security incident. There is no evidence of unauthorized access to billing data or exposure of usage information.
For cloud governance teams, this incident highlights a critical architectural point with a straightforward solution: real-time estimation systems and final billing systems need distinct SLAs and alerts to identify divergences above a configurable threshold. Without this mechanism, the next subsystem error will trigger the same false alarms, and the response from the FinOps team will consume the same hours.