Pass varargs to perform(), and receive err_type and err
Pass the job into middleware
Pass job into middleware when resuming
Middleware docs show job being passed through