Docs

Concepts

Jobs, queues, and states

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

View Markdown

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.

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.

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.