Client Error Responses Error codes in the 4xx range indicate a client error, such as a malformed request. The service MUST ensure that no observable change has occurred to the state of the service as a result of any request that returns an error status code. In the case that a response body is defined for the error code, the body of the error is as defined for the appropriate . Response Code 404 Not 404 Not Found indicates that the resource specified by the request URL does not exist. The response body MAY provide additional information. Response Code 405 Method Not Allowed 405 Method Not Allowed indicates that the resource specified by the request URL does not support the request method. In this case the response MUST include an Allow header containing a list of valid request methods for the requested resource as specified in [RFC2616]. Response Code 410 Gone 410 Gone indicates that the requested resource is no longer available. This can happen if a client has waited too long to follow a or a link, or a next link on a collection that was requested with. Server Error Responses As specified in [RFC2616], codes in the 5xx range indicate service errors. Response Code 501 Not Implemented If the client requests functionality not implemented by the OData Service, the service MUST respond with 501 Not Implemented and the response body SHOULD describe the functionality not implemented. In-Stream Errors In the case that the service encounters an error after sending a success status to the client, the service MUST generate an error within the payload, which may leave the response malformed. Clients MUST treat the entire response as being in error. This specification does not prescribe a particular format for generating errors within a payload.
Acknowledgments The following individuals were members of the OData Technical Committee during the creation of this specification and their contributions are gratefully acknowledged: Howard Abrams (CA Technologies) Ken Baclawski (Northeastern University) Jay Balunas (Red Hat) Mark Biamonte (Progress Software) Matthew Borges (SAP AG) Edmond Bourne (BlackBerry) Joseph Boyle (Planetwork, Inc.) Brown (Individual) Antonio Campanile (Bank of America) Pablo Castro (Microsoft) Axel Conrad (BlackBerry) Cover (OASIS) Erik de (SDL) Downie (Citrix Systems) Stefan Drees (Individual) Patrick Durusau (Individual) Andrew Eisenberg (IBM) Chet Ensign (OASIS) Davina Erasmus (SDL) Colleen Evans (Microsoft) Senaka Fernando (WSO2) Brent Gross (IBM) Zhun Guo (Individual) Anila Kumar GVN (CA Technologies) Ralf Handl (SAP AG) Barbara Hartel (SAP AG) Hubert Heijkers (IBM) Jens Hüsken (SAP AG) Evan Ireland (SAP AG) Gershon Janssen (Individual) Ram Jeyaraman (Microsoft) Ted (Red Hat) Diane Jordan (IBM) Stephan Klevenz (SAP AG) Gerald Krause (SAP AG) Nuno Linhares (SDL) Paul Lipton (CA Technologies) Susan Malaika (IBM) Ramanjaneyulu Malisetti (CA Technologies) Neil McEvoy (iFOSSF – International Free and Open Source Solutions Foundation) Stan Mitranic (CA Technologies) Dale Moberg (Axway Software) Graham Moore (BrightstarDB Ltd.) Farrukh Najmi (Individual) Shishir Pardikar (Citrix Systems) Sanjay Patil (SAP AG) Nuccio Piscopo (iFOSSF – International Free and Open Source Solutions Foundation) Michael Pizzo (Microsoft) Robert Richards (Mashery) Sumedha Rubasinghe (WSO2) James Snell (IBM) Jeffrey Turpin (Axway Software) John Willson (Individual) John Wilmes (Individual) Christopher Woodruff (Perficient, Inc.) Martin Zurmuehl (SAP AG)
Revision History Revision Date Editor Changes Made Working Draft 01 2012-08-22 Michael Pizzo Translated Contribution to OASIS format/template Committee Specification Draft 01 2013-04-26 Michael Pizzo, Ralf Handl, Martin Zurmuehl Added Delta support, Asynchronous processing, Upsert Aligned and expanded Prefer header preferences Simplified data Defined rules and semantics around distributed metadata Fleshed out descriptions and examples and addressed numerous editorial and technical issues processed through the TC Added Conformance section Committee Specification 02 2013-07-01 Michael Pizzo, Ralf Handl, Martin Zurmuehl Cleaned up action and function overloads and binding, removed old-style function parameter syntax Improved asynchronous processing and added callback notifications Improved context URL (formerly: metadata URL) Improved handling of empty results Improved description of rules for processing PUT and POST requests, especially deep inserts Harmonized and $inlinecount