How to mark a sidekiq task/job for retry without raising an error?
<p>I use a Sidekiq queue to process communications with an unreliable, 3rd party API. Since this API is often down for a couple minutes at a time and then back up again, Sidekiq has been handy. When a connection issue happens, an error is raised and Sidekiq throws the job back in the queue to be retried again later, after some time has passed.</p>

<p>I use NewRelic to not only help debug crashes, but also for monitoring. My problem is that this current methodology above creates errors in NewRelic. If the 3rd party API is down for more than a couple of minutes, the error count accumulates enough to cause notifications to send out through NewRelic.</p>

<p>What I'd like to do is only raise an error from my worker when a certain number of retries have occurred for a job. I'm using <code>sidekiq_retries_exhausted</code> to do this. My problem is that I'm not quite sure how to put jobs back in the queue after they have an error without raising an error. </p>

<p>Does Sidekiq provide any facilities to return a job to a queue, increment the number of retries for the job, and have it sit there until it's due to run again, as if an exception was raised in the worker class?</p>