Recently, a non-trivial number of customer interactions revealed that a significant change has been introduced to production by Microsoft, across many of its services. This change resulted in a false-positive alerting from ThousandEyes HTTP Server tests. This short article will explain the situation and provide steps to work around the issue.
Symptoms
Roughly between August 24th and 28th, Microsoft gradually introduced a change into their infrastructure that resulted in ThousandEyes HTTP Server tests reporting test failures:
The tests started reporting errors due to unexpected 500
HTTP response code, accompanied by an Internal Server Error
message, as shown in the following figure:
Analysis
It has been subsequently determined that Microsoft's updated infrastructure will not serve requests which use the ThousandEyes' default User Agent string for our HTTP Server tests and the HTTP Server layer of Page Load tests.
The User Agent string is a textual message that the acting User Agent (or web client) adds to its HTTP request. The information is embedded into the request as a User-Agent
HTTP header before sending it to the target server. The purpose of this message is to enable the User Agent to identify itself to the server. The server then may or may not use a given information to tailor the response before sending it back to the User Agent. A common scenario is serving both mobile and desktop version of the website from the same URL, depending on the User Agent string received. For example, this is how Wikipedia automatically serves you a mobile-friendly version of the article when you open it on your smartphone.
As described in the guide to customizing User-Agent strings used in your ThousandEyes tests, the following are the default User Agent strings used by ThousandEyes:
Test type | Default User-Agent string |
---|---|
HTTP Server |
User-Agent: curl/7.58.0-DEV |
Page Load |
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.83 Safari/537.36 |
Back in our Microsoft-related scenario, whenever a request to an affected target is made using the curl/7.58.0-DEV
User Agent string the described error occurs. However, when the User-Agent string is changed to something resembling what is used by a real web browser (such as the default User-Agent value for Page Load test shown in the table above) the error does not manifest itself anymore.
Workaround
To adjust a test's User Agent string:
- Head over to Cloud & Enterprise Agents > Test Settings view
- Find the affected HTTP or Page Load test
- Expand the settings of the affected test
- Switch to the Advanced Settings tab.
- Locate the User Agent selector
- Change the value
Default
to one of the other predefined choices. Optionally, you may choose the valueCustom
and enter your own desired User Agent string variation.
For reference, here are two screenshots which show the Advanced Settings > User Agent settings before and after following the steps listed above:
Before: | After: |
Further information
If you have any further questions, reach out to ThousandEyes Customer Success team.