Types of Errors Logged by the HTTP Server API

The HTTP Server API logs error responses to clients, connection time-outs, orphaned requests, and dropped connections that are handled incorrectly.

The following table lists errors logged by HTTP.

Error Description
"Responses to clients"
The HTTP Server API sends an error response to a client, for example, a 400 error caused by a parse error in the last received request. After sending the error response, the HTTP Server API terminates the connection.
"Connection time-outs"
The HTTP Server API times out a connection. If a request is pending when the connection times out, it is used to provide more information about the connection in the error log.
"Orphaned requests"
A user-mode process terminates unexpectedly while there are still queued requests that are routed to that process. The HTTP Server API logs the orphaned requests in the error log.

Specific error types are designated by Reason Phrase strings that always appear as the last field of each error line. The following table lists HTTP Reason Phrases.

Reason Phrase Description
AppOffline
A service unavailable error occurred (an HTTP error 503). The service is unavailable because application errors caused the application to be taken offline.
AppPoolTimer
A service unavailable error occurred (HTTP error 503). The service is unavailable because the application pool process is too busy to handle the request.
AppShutdown
A service unavailable error occurred (HTTP error 503). The service is unavailable because the application shut down automatically in response to administrator policy.
BadRequest
A parse error was encountered while processing a request.
Connection_Abandoned_By_AppPool
A worker process from the application pool that crashed or orphaned a pending request by closing its handle.
Connection_Dropped
IIS failed to return the logging data within the specified time limit (1 minute) due to a client disconnect (or reset) before the response was logged. The request was not necessarily dropped; the client may have already received the response.
ConnLimit
A service unavailable error occurred (HTTP error 503). The service is unavailable because the site level connection limit has been reached or exceeded.
Disabled
A service unavailable error occurred (HTTP error 503). The service is unavailable because an administrator has taken the application offline.
EntityTooLarge
An entity exceeded the maximum size allowed.
FieldLength
A field length limit was exceeded.
Forbidden
A forbidden element or sequence was encountered while parsing.
Header
A parse error was encountered in a header.
Hostname
A parse error was encountered while processing a Hostname.
Internal
An internal server error occurred (HTTP error 500).
Invalid_CR/LF
An illegal carriage return/line feed was encountered.
LengthRequired
A required length value was missing.
N/A
A service unavailable error occurred (HTTP error 503). The service is unavailable as a result of an internal error such as a memory allocation failure.
N/I
A not-implemented error occurred (HTTP error 501), or a service unavailable error occurred (HTTP error 503) as a result of an unknown transfer encoding.
Number
A parse error was encountered while processing a number.
Precondition
A required precondition was missing.
QueueFull
A service unavailable error occurred (HTTP error 503). The service is unavailable because the application request queue is full.
RequestLength
A request length limit was exceeded.
Timer_AppPool
The connection expired because a request waited too long in an application pool queue for a server application to remove it from the queue and process it. This timeout duration is ConnectionTimeout, which is set by default to 2 minutes.
Timer_ConnectionIdle
The connection expired and remains idle. The default ConnectionTimeout duration is 2 minutes.
Timer_EntityBody
The connection expired before the request entity body arrived. When it is clear that a request has an entity body, the HTTP Server API turns on the Timer_EntityBody timer. The limit of this timer is initially set to the ConnectionTimeout value (normally 2 minutes). Each time another data indication is received on this request, the HTTP Server API resets the timer to give the connection an additional 2 minutes (or whatever is specified in ConnectionTimeout).
Timer_HeaderWait
The connection expired because the header parsing for a request took more time than the default limit of 2 minutes.
Timer_MinBytesPerSecond
The connection expired because the client was not receiving a response at a reasonable speed, which means that the response send rate was slower than the default of 150 bytes/sec.
Timer_Response
Reserved. Not used.
URL
A parse error was encountered while processing a URL.
URL_Length
A URL exceeded the maximum allowed size.
Verb
A parse error was encountered while processing a verb.
Version_N/S
A version-not-supported error occurred (HTTP error 505).