The DB call can fail for many reasons other than duplicate task id. If we really want to separate duplicate id from random stuff going wrong, I think we need a new exception type.