Currently if a job throws any exception we catch it and simply set the state of the job / task / target to FAILED :/
It is hard to determine why the job has failed and we should provide more information in the UI.
This will likely mean taking the exception type and message and shoving them somewhere in the DB alongside the failed state object.