---
title: "Jobs, queues, and states"
locale: en
url: https://tlg.builera.app/en/docs/concepts/jobs-and-states
verified: 2026-10-24
app_version: "2.0"
---

# Jobs, queues, and states

Understand execution order, hold reasons, unverified results, and the conditions for rerunning jobs.


An accepted request does not mean Telegram has performed it. Operations that need a machine become jobs, wait for the safety gate, and have their results recorded when they finish.

Distinguish the job’s state from the account’s state and from the API call that created it.

## Read the states

| State | Meaning |
|---|---|
| `queued` | Waiting to be considered for dispatch |
| `held` | Held because a condition has not been met |
| `claimed` | The machine has accepted the job and is executing it |
| `done` | Completed successfully |
| `failed` | Ended with an error |
| `unknown` | It is unclear whether the action happened on Telegram |
| `expired` | Has expired |
| `cancelled` | Has been cancelled |

When the machine reports that it could not verify the result, the job moves to `unknown`, shown in the app as **Unverified**.

A `held` job is not deleted. If it is waiting on time, the system has a review time. If it is waiting for a fact to change, such as the session, proxy, or recipient, elapsed time alone does not make the job eligible to run.

## Priority lanes

There are **5 lanes**:

| Lane | Typical work |
|---|---|
| `control` | Sign-in, sign-out, and session recovery |
| `direct` | Customer replies and direct operations in a conversation |
| `drip` | The next step in an active sequence or campaign |
| `broadcast` | First outreach, invitations, and proactive sends |
| `background` | Sync, history, search, scans, nurture, and maintenance |

To qualify as a reply in the `direct` lane, the most recent incoming message from that person must be within **72 hours**.

The app’s server determines the lane from the facts it holds. Callers cannot raise their own priority, and jobs do not move up a lane simply because they have waited a long time.

## Order within a conversation

Within the same conversation, first in means first out. This order is preserved before lanes are considered. A higher-priority job cannot overtake an earlier job in the same conversation.

A job with an **Unverified** result holds subsequent jobs in that conversation. This prevents a message sequence from continuing while the system does not know whether the previous message went through.

## Unverified results and reconciliation

**Unverified** does not mean failed. Telegram may have performed the action without the response arriving.

The system does not automatically resend in this case. Usage still counts. When a receipt arrives late, the system checks the account, execution attempt, and matching facts before confirming the send—once, without counting usage a second time.

The late-receipt window is **24 hours** from when the job ended. This is not a promise that every job will resolve itself after 24 hours, nor is it a deadline after which you may resend. See [Unverified send results](https://tlg.builera.app/en/docs/troubleshooting/unverified-send).

## Retries and manual reruns

Actions with side effects, such as sending, inviting, or editing, are not retried automatically. Read-only jobs are retried for temporary errors, up to **3 times**. The base delay is **60 seconds**, and is never shorter than the FLOOD_WAIT or SLOWMODE duration Telegram requires.

> [!WARNING]
> Rerunning a job with side effects may duplicate those effects. Confirm only after checking the actual result.

**Rerun** (`jobs.redrive`) accepts only **Failed** or **Expired** jobs. It rejects Unverified jobs, jobs that are still open, and jobs that are done or cancelled. Messages, sign-in, and jobs managed by campaigns or nurture schedules have separate handling paths. A rerun is a new job linked to the original. The original job is not modified.

## Related

- [Logs](https://tlg.builera.app/en/docs/guides/logs)
- [Investigate a failed job](https://tlg.builera.app/en/docs/agent-playbooks/investigate-failed-job)
- [Unverified send results](https://tlg.builera.app/en/docs/troubleshooting/unverified-send)
- [The jobs.redrive operation](https://tlg.builera.app/en/docs/reference/rest/jobs.redrive)

