Есть функция в которую передается массив c id. Перед функцией к этому массиву применяется uniq. В базе данных стоит ключ на уникальность этого ID. Внутри самой функции я проверяю что если какойто id уже есть в базе данных, то я его просто скипаю. Так вот у меня есть подозрения что иногда получается так что два воркера запускаются одновременно и проверка на уникальность id в БД уже прошла на стороне рельс, и валится на этапе записи в БД
в коде твоей логики добавить перехват исключения на уникальность. И писать в логи, отправлять в сентри или еще куда. так ты поймешь возникает ли такая ситуация