React Native 0.71 RC1 Android Outage Postmortem
Article Summary
A single character in a Gradle config file took down Android builds for every React Native version simultaneously. Here's how the React Native team handled a 4-day global outage.
The React Native team published a detailed postmortem of the November 2022 incident where releasing version 0.71 RC0 broke Android builds across all versions. The culprit? A dynamic version operator (+) in build.gradle that caused projects to pull incompatible artifacts from Maven Central.
Key Takeaways
- Dynamic version operator (+) pulled wrong artifacts, breaking all Android builds
- Community found workaround in 2 hours, full resolution took 4 days
- Team patched 9 versions back to 0.63 to cover 90% of users
- Incident exposed gaps in release testing and incident response strategy
- New policies: better testing, release support policy, 3rd party library guidance
A Gradle antipattern that existed since React Native 0.12.0 finally caused a global outage, prompting major improvements to release infrastructure and incident response.
About This Article
React Native's template used Gradle dynamic versioning with the + symbol, which meant older projects like 0.68.0 automatically pulled incompatible 0.71.0-rc.0 artifacts from Maven Central. This broke builds across all versions at once.
The React Native team worked with Sonatype to delete the problematic artifacts and released patches back through version 0.63. They also built automated fixes instead of waiting for the community to discover workarounds.
The fix took 4 days and required patching 9 previous versions to reach 90% of developers. It led to new release support policies, better testing infrastructure, and stronger relationships with library maintainers like Callstack.