Failed synthetic tests

Figure out why synthetic tests have failed or produced unexpected results.

What causes a test to fail?

SpeedCurve only records metrics for tests where the base request returns an HTTP 200 response. Any other responses are considered errors and will cause the test to fail.

Tests can also fail if the page takes too long to load. Tests will fail if they take longer than 2min to complete.

One of the most common causes of test failures is the SpeedCurve test agents being blocked by bot managers or firewall rules.

Identifying a failed test

There are several ways that a failed test can appear in SpeedCurve. In the Site dashboard a failed test is indicated by a red circle in the charts.


In the Deploy dashboard a failed test will display an error message as well as having all of its metrics either unavailable or set to zero.


On the Test dashboard a failed test will not display the waterfall chart or any scores. It will show an error message along with any known information about the test result.


Preventing SpeedCurve tests from being blocked

The easiest way to prevent SpeedCurve tests from being blocked by your bot manager or firewall rules is to add the SpeedCurve user-agent to a safelist. This can be done by allowing all HTTP traffic with a user-agent header containing the string "PTST/SpeedCurve".

For other methods, see our article on testing private websites.

Preventing Lighthouse tests from being blocked

Lighthouse uses a different user-agent string from regular SpeedCurve tests. It can be unblocked by allowing all HTTP traffic with a user-agent header containing the string "Chrome-Lighthouse".

Debugging failed Lighthouse tests

Lighthouse tests can fail for many of the same reasons as regular SpeedCurve tests. One important thing to note about Lighthouse is that it doesn't support scripting.

If you find an issue with a Lighthouse test, we recommend reporting it to the Lighthouse issue tracker.
Debugging scripted tests

See our article on debugging scripts.