I experienced this and did not find a solution / root cause.
I could not solve it cleanly, but came up with a hack.
I set up God to control my Sidekiq processes and restart them if the file changed.
Then I set up a Cron job that runs every 5 minutes to check all of the current Sidekiq work sides for the queue. If some% of workers had a start time of <= 5 minutes in the past, this meant that these workers were hanging for some reason. If this happened, I touched a file that made God restart Sidekiq. 5 minutes were ideal for me, but it depends on how long your work lasts.
This is the only way to resolve Sidekiq hanging jobs without checking them every hour, and reloading it yourself.
source share