Process Lifecycle
Phonefarm exposes a normalized process model so callers do not need to reason about every internal queue state.Public Status Enum
These are the public statuses returned byGET /processes/{process_id}:
Internal to Public Mapping
Internally, Phonefarm uses richer request and queue states. The current mapping is:Idempotency
Phonefarm uses different idempotency keys depending on endpoint family.Process APIs
POST /capability-requests/enqueuePOST /maintenance/requests
Legacy Queue APIs
POST /ingest
Partial Progress
A public process can represent fanout or multi-step work. That means binary success and failure is not always enough. When a process ends in partial completion:- public status becomes
failed_terminal partial_progressremains available for consumerslinked_idsshows queue-item relationships
status, error, partial_progress, and linked_ids together.
Timestamp Semantics
Thetimestamps object is milestone-derived.
Important:
executing_at is not guaranteed to be the exact time of first device interaction.
Terminal Behavior
Terminal outcomes are:completedfailed_terminalcancelled
cancel_requested path internally before settling into a final public status.