Google Chrome was the first web browser to adopt a rapid release cycle, with Mozilla Firefox eventually switching to the same model. Later this year, both browsers will reach version 100, which might cause a few unexpected problems on some sites. Thankfully, Mozilla and Google are working to address compatibility issues.

Web browsers have a User Agent string that identifies themselves to sites, which usually contains the web browser, operating system, and CPU architecture. There's no standard for how User Agents are supposed to be presented, and they became increasingly longer over the years. For example, the below string of Chrome on Linux contains the words "Chrome," "Safari" (because Chrome's engine is based on Safari), "KHTML" (which Safari was based on), and "Gecko" (to avoid breaking older sites that required Firefox).

        Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.80 Safari/537.36
    

Many libraries were created for web developers to easily identify specific parts of the User Agent string, such as the actual browser name and version numbers, but some of them could break soon. Some libraries and other web code weren't built with three-digit major version numbers in mind, which could cause unintended results for people browsing the web — sites that only look at the first two digits could see Chrome 100 as Chrome 10.

The good news is that both Google and Mozilla are working on mitigation strategies (via Bleeping Computer). Both Chrome and Firefox have been running experiments for a few months that change some user agents to report version 100, which has already led to many bug reports and some fixes.

However, if there are still many important websites that break with version 100, Google and Mozilla have backup plans. Mozilla's current idea is to identify broken sites (which it already does for other functionality) and freeze the version number at v99 for those sites. Google's plan is to keep the first digit of the version at 99, and move the actual major release to the second digit (e.g. 99.101.4988.0 for Chrome 101).