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

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

Records a unit of work as in flight until it settles.

**Signature:**

```typescript
protected track<U>(work: Promise<U>, message?: any): Promise<U>;
```

## Parameters


| Parameter | Type | Description |
| --- | --- | --- |
| work | Promise<U> | the promise to wait for |
| message | any | _(Optional)_ the popped message, for job handling only; a drain that runs out of budget puts this back on the queue |


**Returns:**

Promise<U>

`work`, unchanged

## Remarks

Bookkeeping attaches to a \*derived\* promise, never to `work` itself, so a rejection stays whoever owns it to handle and this can never become an unhandled rejection of its own.

A no-op that allocates nothing when draining is off, which is what keeps the default path exactly what it was.

