Exception Codes

Exception Codes

The following is a list describing the exception conditions, such as overflows and errors resulting from incorrect or unmatched data, which are generated during program execution. The error codes are compatible with the LSAE specification. *New (BioMOBY specific) error types not included in LSAE specification
Exception codes dealing with analysis data
CodeNameDescription
200UNKNOWN_NAMESetting input data under a non-existing name, or asking for a result using an unknown name
201INPUTS_INVALIDInput data are invalid; they do not match with their definitions, or with their dependency conditions (Taken from LSAE, in BioMOBY this means a generic invalid input error. Other specific invalid input errors listed below)
202INPUT_NOT_ACCEPTEDUsed when a client tries to send input data to a job created in a previous call but the server does not any more accept input data
221*INPUT_REQUIRED_PARAMETERService require parameter X
222*INPUT_INCORRECT_PARAMETERIncorrect parameter X
223*INPUT_INCORRECT_SIMPLEIncorrect input in simple article
224*INPUT_INCORRECT_SIMPLENBService requires two or more simple articles
225*INPUT_INCORRECT_COLLECTIONIncorrect input in collection article
226*INPUT_EMPTY_OBJECTEmpty input object
227*INPUT_INCORRECT_NAMESPACEIncorrect Namespace in the input object
Exception codes dealing with analysis execution
CodeNameDescription
300NOT_RUNNABLEThe same job has already been executed, or the data that had been set previously do not exist or are not accessible anymore. Life Sciences Analysis Engine Adopted Specification
301NOT_RUNNINGA job has not yet been started. Note that this exception is not raised when the job has been already finished.
302NOT_TERMINATEDA job is not interruptible for some reason.
Error codes dealing with analysis metadata
CodeNameDescription
400NO_METADATA_AVAILABLEThere are no metadata available
Error codes dealing with notification
CodeNameDescription
500PROTOCOLS_UNACCEPTEDUsed when a server does not agree on using any of the proposed notification protocols
General error codes
CodeNameDescription
600INTERNAL_PROCESSING_ERRORA generic catch-all for errors not specifically mentioned elsewhere in this list
601COMMUNICATION_FAILUREA generic network failure
602UNKNOWN_STATEUsed when a network call expects to find an existing state but failed. An example is an unknown handler representing a Job (unknown Job_ID, typical for WebServices platform)
603NOT_IMPLEMENTEDA requested method is not implemented. Note that the method in question must exist (otherwise it may be caught already by the underlying protocol and reported differently) - but it has no implementation
Service intrinsic exceptions
CodeNameDescription
700OK Service execution was correct(This is a placeholder error code to allow the service to provide a formatted information block in the response)
701SERVICE_INTERNAL_ERROR Specific errors from the BioMOBY service(I.e. from Blast 'Check the sequence format; it does not seem to be a nucleotide/Amino acid sequence')

Specification (API v0.86) changes

In addition to the above (3) section, the following specification changes are proposed:
  1. FROM: In the case of Retrieve calls, failure will be silent and an empty object of the associated output type will be returned. TO:In the case of Retrieve calls an error, failure should be silent raise an exception and an empty object of the associated output type mobyData block with the appropriate queryID will be returned. Comments to this change: Exception rising is optional, but should be recommended. The wording in the original API was wrong - the object is not empty, the mobyData block is empty.
  2. FROM: There MUST BE as many mobyData response elements as there were mobyData input elements (if a service can not respond to a specific query for whatever reason, this element may be empty!) TO: There MUST BE as many mobyData response elements as there were mobyData input elements (if a service can not respond to a specific query for whatever reason, this element may be empty, but an exception could be raised to explain why) Comments to this change: Exception rising is optional. The service provider could choose to report the failure or not, but still has to return an empty element.
  3. FROM: The serviceNotes block is only loosely defined in this version of the API, and is currently meant to contain human-readable free text. serviceNotes are optional. TO: The serviceNotes block is only loosely defined has been changed to support exception reporting in this version of the API. In addition to the mobyException element for exception reporting, a Notes child element and is currently meant to contain human-readable free text. serviceNotes are optional. Comments to this change: The original bioMOBY specification states that the serviceNotes element should contain human-readable text. With the addition of an structured XML mobyException element, and to avoid mixed free-text and XML content in serviceNotes, a new Notes child element is added under serviceNotes to preserve its previous functionality.