# BaseJobQueue.drainRequeue() method · @imqueue/job

Source: https://imqueue.org/api/job/latest/job.basejobqueue.drainrequeue/
Published: 2026-08-31
Author: @imqueue maintainers (https://github.com/imqueue)
Package: @imqueue/job 3.3.0 — generated reference, not hand-written

Drain step three: put back whatever the budget ran out on.

**Signature:**

```typescript
drainRequeue(): Promise<void>;
```
**Returns:**

Promise<void>

## Remarks

Only jobs, and only with [JobQueueOptions.drainRequeue](https://imqueue.org/api/job/latest/job.jobqueueoptions.drainrequeue/) on. Safe delivery released each job's worker key the moment the job reached the handler, so an abandoned job is checked out to nobody and nothing else would ever bring it back.

The abandoned handler is still running as this pushes its job back, so the job may both finish and be delivered again — the at-least-once duplicate a lease expiry would have produced anyway.

