#
Handling Job Errors
When getting back the job results (through polling or through a webhook), it is important to parse the response body for potential errors.
#
1. Checking for success
The Engine will always return a success
boolean. If this field is true
, the job has finished successfully. This however doesn't mean that all expected outputs are computed successfully (see below).
If success
is false
, it means a serious error occurred during processing, causing the complete job to fail. At this point, there might not be any output files available. It could be interesting to flag this to Relu, so we can investigate the issue.
#
2. Checking the status of each output file
If the overall job status is successful, you should check the status of each individual output file. Each output file has a status
field, which can be one of the following:
Available
: The file is computed successfully and available for download. You can safely download the file using the providedurl
(when downloading from Relu) or you can safely assume that the file is present on your servers (when providing pre-signed upload URLs).Missing
: The file could not be computed, because it is not present in the input data. The processing pipeline didn't encounter any issues. This can for instance occur when requesting mesh files for all teeth individually, where some teeth are missing on the patient (e.g., he doesn't have any 3rd molars). In this case, the file will not be available for download.Failed
: The file could not be computed. This could be due to various reasons, such as corrupted input data or unforeseen errors during the processing, causing the computation to crash.
Disclaimer: output from any job that is submitted should be considered as a proposal, not as 100% accurate. A status: Success
response doesn't say anything about the quality of the result. It is strongly advised to implement manual verification processes and backup workflows to ensure data reliability and user safety.
When unexpected results are received, it is possible to automatically flag this to Relu, so we can investigate the issue.