A red test in CI looks precise.

Something failed. The pipeline stopped. There is a screenshot, a stack trace, and perhaps a video.

But then someone opens the screenshot and sees a loading spinner. The trace says the locator was not found. The same test passes locally. Rerunning the job makes it green.

At that point, the team does not really have a failed test. It has an unresolved event.

That distinction matters more now than it did a few years ago. Browser applications are more dynamic, CI environments are more disposable, and test suites increasingly include AI-generated steps, assertions, locators, and repair suggestions.