refactor: sychronized with itself
do not reuse worker if there are any exceptions