Platform SDK: Exchange 2000 Server

Error Codes By Number

Error Code Method Description
All 100 level codes * Informational
100 Continue [HTTP]   Initial part of incomplete request was accepted by server. [HTTP]
101 Switching Protocols [HTTP]   Server wants to switch to a newer version, or real-time protocol, to continue. Used when an upgrade header was in the client request. [HTTP]
102 Processing [WEBDAV] MOVE, COPY Can be used to indicate status of ongoing processes, particularly ones that use the Depth header. This is to avoid having the client time-out with an error. [WEBDAV]
All 200 level codes * Success
200 OK [HTTP] GET, HEAD, OPTIONS, LOCK, POST, DELETE Typical successful response for these methods, in cases where no new resource is created. [HTTP]
  SUBSCRIBE, UNSUBSCRIBE Possible success response. [NOT]
  TRACE Trace was reflected back to sender [HTTP]
  PROPFIND PROPPATCH Possible successful response if all props were successfully returned/set. Not used in our implementations, see 207. [WEBDAV]
  ORDERPATCH Successful response [COL]
201 Created [HTTP] POST, PUT Resource successfully created [HTTP]. If the action cannot be completed right away, a 202 must be returned instead. [HTTP1.1]
  MKCOL, MOVE Collection successfully created or resource successfully moved. [WEBDAV]
  MKREF Reference successfully created [COL]
  LOCK In the case where you do a LOCK on a null resource, the LOCK will create the resource [Loren Curtis]
202 Accepted [HTTP] DELETE, PUT, POST Resource will be created or deleted but is not yet [HTTP].
203 Non-authoritative Information [HTTP] Any? Meta-information in the header did not come from origin server. Only used when response would otherwise be 200 OK. [HTTP] Use of this response code is not required. [HTTP1.1]
204 No Content [HTTP] POST, PUT Standard success response when no resource was created [HTTP]. The server has fulfilled the request but does not need to return an entity-body, and might want to return updated meta information. [HTTP1.1]

With PUT, the 204 response allows the server to send back an updated etag and other entity information about the resource that has been affected by the PUT operation. This allows the client to do the next PUT using the If-Match precondition to ensure that edits are not lost. [Mail posted to WebDAV list]

  DELETE, UNLOCK Standard success response [WEBDAV]
  COPY, MOVE The source resource was successfully copied or moved to a pre-existing destination resource. [WEBDAV]
205 Reset Content [HTTP]   Server has fulfilled request and client should reset document view. Must not include an entity.[HTTP]
206 Partial Content [HTTP] GET Only some of the resource was returned, with range header to indicate how much. [HTTP]
207 MultiStatus [?] PROPFIND, PROPPATCH, SEARCH Typical successful response [WEBDAV] [SEARCH] [DASL]
  SUBSCRIBE, UNSUBSCRIBE Typical successful response [NOT]
  COPY, MOVE If an error in executing the COPY occurs with a resource other than the request URI, then the response must be 207. 424 and 201 responses should NOT be values in 207 multi-status responses to COPY. [WEBDAV]
  LOCK Used with a multi-resource lock request [WEBDAV]
All 300 level codes * Redirection - further action must be taken to complete request
300 Multiple Choices [HTTP] GET, HEAD The requested resource corresponds to any one of a set of representations, each with its own specific location, and agent- driven negotiation information (section 12) is being provided so that the user (or user agent) can select a preferred representation and redirect its request to that location. [HTTP]
301 Moved Permanently [HTTP] GET, HEAD New permanent URI has been assigned to resource. [HTTP]
  PUT Server wishes to apply the PUT to a different URI than the one in the method.
302 Moved Temporarily [HTTP] GET, HEAD New temporary URI has been assigned to resource. [HTTP]
302 Found [HTTP1.1] GET, HEAD, other The requested resource resides temporarily under a different URI. Since the redirection might be altered on occasion, the client SHOULD continue to use the Request-URI for future requests. [HTTP1.1]
303 See Other [HTTP] POST Typically used to respond to POST, because a response to a POST is not cacheable, but the response to a GET will be. Client uses GET to see other. [HTTP]
304 Not Modified [HTTP]   If the client has performed a conditional GET request and access is allowed, but the document has not been modified, the server SHOULD respond with this status code. The response MUST NOT contain a message-body. [HTTP]
305 Use Proxy [HTTP] Any  The requested resource MUST be accessed through the proxy given by the Location field. [HTTP1.1]
306 Unused   The 306 status code was used in a previous version of the specification, and is no longer used, and the code is reserved. [HTTP1.1]
307 Temporary Redirect [HTTP1.1] GET, HEAD The requested resource resides temporarily under a different URI.
All 400 level codes * Client Failure
400 Bad Request [HTTP] Any Malformed syntax. [HTTP] E.g. empty namespace name in the XML body (XML-DATA spec)
  MKREF, ORDERPATCH User attempted to order a member before or after itself. Or, more than one ordering was attempted with ORDERPATCH. [COL.
  SUBSCRIBE Illegal combination of headers [NOT]
  SEARCH No body, invalid scope, etc [SEARCH] The query could not be executed. The request may be malformed (not valid XML for example). Additionally, this can be used for invalid scopes and search redirections. [DASL]
401 Unauthorized [HTTP] Any Resource requires authorization, or authorization was refused [HTTP]
  PROPPATCH Execute a proppatch on two properties, one of which requires authentication to change and the other does not. Result: The entire request will be rejected with a 401.
402 Payment Required [HTTP] Any  
403 Forbidden [HTTP] Any The server understood the request but will not do it. Authorization will not help.
  MKCOL, LOCK, PROPPATCH Client does not have permissions to make a collection, lock the resource or set a property. [WEBDAV] Check-out attempt: this will be returned if the resource is not versioned, of if the resource is a collection [VERSION]
404 Not Found [HTTP] Any Resource named was not found. [HTTP]
405 Method Not Allowed [HTTP] Any The method was not allowed for the resource named. [HTTP] The response MUST include an Allow header containing a list of valid methods for the requested resource. [HTTP1.1]
  MKCOL This might occur if the resource already exists thus cannot be created. [WEBDAV]
  MKREF, ORDERPATCH Not an ordered collection. [COL]
406 Not Acceptable [HTTP]  Any  The resource identified by the request is only capable of generating response entities which have content characteristics not acceptable according to the accept headers sent in the request. The response SHOULD include an entity containing a list of available entity characteristics and location(s)from which the user or user agent can choose the one most appropriate. [HTTP1.1]
  HEAD The response need not include an entity as above.
  SUBSCRIBE SUBSCRIBE request had an accept-header that the server could not satisfy [NOT].
407 Proxy Authentication Required [HTTP] Any  This code is similar to 401 (Unauthorized), but indicates that the client MUST first authenticate itself with the proxy. [HTTP1.1]
408 Request Timeout [HTTP] Any  The client did not produce a request within the time that the server was prepared to wait. [HTTP1.1]
409 Conflict [HTTP] MKCOL A collection cannot be made until intermediate collections have been created [WEBDAV]
  PROPPATCH The client has provided a value whose semantics are not appropriate for the property, e.g. trying to set a read-only property. [WEBDAV]
  PUT Cannot PUT a resource if all ancestors do not already exist. [WEBDAV]

If versioning were being used and the entity being PUT included changes to a resource which conflict with those made by an earlier (third-party) request, the server might use the 409 response to indicate that it can't complete the request. [HTTP1.1]

  MKREF, ORDERPATCH Member named for ordering does not exist in collection.
  SUBSCRIBE Invalid or unsupported notification-type [NOT].
410 Gone [HTTP] GET  The requested resource is no longer available at the server and no forwarding address is known. This condition is expected to be considered permanent. [HTTP1.1]
411 Length Required [HTTP] Any  The server refuses to accept the request without a defined Content-Length. [HTTP1.1]
412 Precondition Failed [HTTP] Any The precondition given in one or more of the request-header fields evaluated to false when it was tested on the server. [HTTP1.1]
  COPY, MOVE The Server was unable to maintain the live-ness of the properties listed in the property behaviour XML element, or the overwrite header is F and the state of the destination resource is non-null. [WEBDAV]
  LOCK The lock token was not enforceable or the server could not satisfy the request in the lockinfo XML element.
  SUBSCRIBE, UNSUBSCRIBE The subscription-ID(s) in the header did not match the resource named. This could be because the subscription-ID does not exist any more [NOT]
413 Request Entity Too Large [HTTP] Any  The server is refusing to process a request because the request entity is larger than the server is willing or able to process. [HTTP1.1]
414 Request URI Too Large [HTTP] Any  The server is refusing to service the request because the Request-URI islonger than the server is willing to interpret . [HTTP1.1]
415 Unsupported Media Type [HTTP] Any The server is refusing to service the request because the entity of the request is in a format not supported by the requested resource for the requested method.
  MKCOL The server does not support the request type of the body. [WEBDAV]
416 Requested Range Not Satisfiable [HTTP1.1]   A server SHOULD return a response with this status code if a request included a Range request-header field (section 14.35) , and none of the range-specifier values in this field overlap the current extent of the selected resource, and the request did not include an If-Range request-header field. [HTTP1.1]
417 Expectation Failed [HTTP1.1]   The expectation given in an Expect request-header field (see section14.20) could not be met by this server, or, if the server is a proxy, the server has unambiguous evidence that the request could not be met by the next-hop server. [HTTP1.1]
422 Unprocessable Entity [WEBDAV] MKCOL The server understands the content type of the request entity, but was unable to process the contained instructions. [WEBDAV] E.g. the MKCOL has a request body that is not understood or is incomplete, even if in XML which is generally accepted in this situation. [SEARCH]
  SEARCH Valid XML body in SEARCH, but unsupported or unimplemented query operator. [SEARCH] [DASL]
  LOCK Non-zero depth was specified for a check-out lock, or the Depth header was omitted [VERSION]
423 Locked [WEBDAV] PROPPATCH, DELETE, MOVE Cannot set properties on, delete, move or lock a locked resource without the lock token. [WEBDAV]
  LOCK Already locked (need lock token) [WEBDAV]. Or, the user tries to create a transaction within a transaction [TRANS].
  COPY The destination resource was locked. [WEBDAV]
424 Method Failure [WEBDAV] PROPPATCH, ? The method was not executed on a resource because some part of the method's execution failed and the whole thing was aborted. [WEBDAV]
  UNLOCK One of the methods in the transaction failed, therefore the entire transaction failed [TRANS].
425 Insufficient Space on Resource SEARCH The query produced more results than the server was willing to transmit. Partial results have been transmitted. [SEARCH]
All 500 Level Codes * Server Failure
500 Internal Server Error [HTTP]    The server encountered an unexpected condition which prevented it from fulfilling the request. [HTTP1.1]
501 Not Implemented [HTTP] Any The server does not support the functionality required to fulfill the request. This is the appropriate response when the server does not recognize the request method and is not capable of supporting it for any resource. [HTTP1.1]. Contrast with 405.
  PUT Error when a server receives a content-* header it does not understand in a PUT.
  SUBSCRIBE Server does not support the notification method (i.e. UDP callback, or delivery-control header) [NOT]
502 Bad Gateway [HTTP]   The server, while acting as a gateway or proxy, received an invalid response from the upstream server it accessed in attempting to fulfill the request. [HTTP1.1]
  COPY, MOVE The destination could be on another server, and the destination server refuses to accept the resource. [WEBDAV]
503 Service Unavailable [HTTP]    The server is currently unable to handle the request due to a temporary overloading or maintenance of the server. The implication is that this is a temporary condition which will be alleviated after some delay. [HTTP1.1]
504 Gateway Timeout    The server, while acting as a gateway or proxy, did not receive a timely response from the upstream server specified by the URI (e.g. HTTP, FTP,LDAP) or some other auxiliary server (e.g. DNS) it needed to access in attempting to complete the request. [HTTP1.1]
505 HTTP Version not supported Any  The server does not support, or refuses to support, the HTTP protocol version that was used in the request message. [HTTP1.1]
507 Insufficient Storage PROPPATCH, MKCOL The resource does not have enough space to set the properties or make the collection. [WEBDAV]
  COPY The destination resource does not have sufficient space. [WEBDAV]
  SEARCH The query produced more results than the server was willing to transmit. Partial results have been transmitted. The server MUST send a body that matches that for 207, except that there MAY exist resources that matched the search criteria for which no corresponding WEBDAV:response exists in the reply. [DASL] Note that the IIS5 and Pt implementations of WEBDAV SEARCH use 425 instead of this error.

 

References

[WEBDAV] Goland et al, "Extensions for Distributed Authoring on the World Wide Web -- WEBDAV", June 1998
[HTTP] Fielding et al, "Hypertext Transfer Protocol -- HTTP/1.1", January 1997
[COL]  Slein et al, "WebDAV Collection Protocol", July 1998
[HTTP1.1] Fielding et al, "HyperText Transfer Protocol -- HTTP/1.1", draft-ietf-http-v11-spec-rev-04>, August 1998