On the CUDOS network, workloads (jobs) submitted for processing go through the different layers. However, jobs may fail and it is important for developers to understand why jobs fail and how to handle errors when they do occur. Jobs can fail for several reasons, which the Cudo platform catches and handles. The main failure types are:
Timeout — If a supplier starts a job and the job is not completed within a certain length of time then is treated as a timeout. In this case, the job is rescheduled with a second supplier and the reputation of the first supplier is adjusted accordingly. The first supplier’s stake is not slashed.
Malicious – When a supplier submits fake work in order to game the system and Cudo recognises this, the work is treated as malicious. In this case, the job is rescheduled with a second supplier and the reputation of the first supplier is adjusted accordingly. Additionally, Cudo may slash the stake of the supplier if it is certain that the failure was malicious and not accidental. For more details of the staking/slashing mechanism
Consumer complaint- In a situation where work has been delivered to the consumer and the consumer complains to Cudo that there is a problem with the output, the job goes to an internal dispute resolution process. Depending on the circumstances, Cudo may handle this by various means including running a consensus check, manually running the job or a technical investigation into the work image. Depending on the result of this process, Cudo may opt to undertake any of the following actions: reschedule the work, penalise the supplier or refund the consumer. The system is designed to minimise the number of such incidents.
Understanding the failure type provides a sure way to handle it. It is important for developers to use the right resolution mechanism to solve it.