According to the HTTP 1.1 spec, any 2XX status code is considered success: "This class of status code indicates that the client's request was successfully received, understood, and accepted."
A 299 status code is returned by the Browser Agent when the browser aborts an object request. This 299 status code does not indicate an object failure, which would instead be represented by a status code in the 300/400/500 status code range. In many cases the object may have been completely successful. The 299 status code indicates that a successful object request was discarded by the browser due to page behavior at the time the request was aborted.
299 return status codes fall into three categories:
- Operation aborted: the object was requested and immediately discarded by the client. No data for the object was downloaded.
- The object was partially downloaded, but the test initiated the next navigation before the object was marked as complete by the host. In this case, these objects are assigned a return status code of 299 rather than 200.
- The test was terminated by the Browser Agent, and downloads in progress of any objects are aborted.
These behaviors can be diagnosed by examining when the 299 object was encountered in a test:
- If the last object in a page has a 299 return status code, this indicates the object was in the process of being downloaded when the navigation began to a new page.
- If the first object in a page has a 299 return status code, this indicates an object that was called after the previous step completed but was terminated by the browser during navigation to a new page.
- Objects in the middle of the page with a 299 return status code are usually caused by page or object behavior, such as a page refresh action or if an object is an unsupported MIME type.
- A series of objects at end of a test might all have 299 return status codes if a timeout threshold is exceeded. When that occurs, the Browser Agent allows the page to continue to load until either there is no additional network activity or until the hard timeout threshold is surpassed, at which point the Browser Agent process terminates. All remaining incompletely downloaded objects will be assigned return status code values of 299, regardless of their download progress.