Concepts
Posts and targets
A post is the content; a target is that content on one account. Each target moves through its own state machine.
A post holds the text, media and schedule. A target is that post on one account: @ClaudePass_HQ on X is one target, @wisparm_keyboard on Instagram another. Targets succeed and fail independently, so a post can be partly published.
Overrides§
Each target may carry an override with its own text, media_ids or options. That is how one call sends short copy to X and a Reel with a longer caption to Instagram. Validation runs per target, against the merged result.
Target states§
- held
- Waiting on a person: approval, or a draft nobody has scheduled.
- scheduled
- Will be claimed by a worker at publish_at.
- publishing
- A worker holds the account lease and is sending.
- awaiting_platform
- Sent; the platform is still processing (Instagram containers).
- retry_wait
- A retryable error. The next attempt is booked with backoff.
- unknown
- The call may or may not have landed. Reconciled with the platform before any retry.
- needs_reconnect
- The account's token stopped working. A person must reconnect it.
- published
- Live, with the platform's id and URL.
- failed
- Gave up, with the error and whether a retry is safe.
- canceled
- Withdrawn before it went out.
Post status§
The post’s own status is computed from its targets: published when all are, partially_published when some are, failed when none could be. Before that it is draft, pending_approval, rejected or scheduled.
Late is a failure§
Every target has a not_after (default publish_at + 6h). If it has not published by then it fails as stale rather than posting hours late. Timings are targets, not promises; a late launch post is usually worse than none.
Why nothing posts twice§
- An attempt row is committed before the irreversible platform call.
- One worker at a time holds an account’s lease, so two workers never send the same target.
- A timeout becomes
unknown, and the worker searches the account for the post before it tries again.