OpenRouter batch statuses vs Sume job statuses mapped
OpenRouter batches go validating, in_progress, finalizing, completed. Sume jobs go queued, processing, then completed, failed or canceled (one L). Table.

OpenRouter batches normally move validating to in_progress to finalizing to completed. Sume jobs move queued to processing to completed, failed or canceled. Sume has no validating, finalizing or expired state, and it spells canceled with one L, where OpenRouter uses cancelled.
Sources: OpenRouter's Batch API quickstart and Sume's Generation admission page, read 2026-10-01.
Which statuses does each side define?
OpenRouter lists the progression above plus failed, expired, cancelling and cancelled. Its terminal set is completed, failed, expired and cancelled. Sume's admission page shows submit, then queued, then processing, then completed | failed | canceled. The docs do not publish an official mapping, so the rows below pair states by meaning only.
| OpenRouter batch | Closest Sume job state | Note |
|---|---|---|
validating | Submit response (queued when accepted) | Sume accepts once it has a durable job id |
in_progress | processing | Workers move queued to processing under a concurrency guard |
finalizing | No equivalent | Not a Sume state |
completed | completed | Read the result once result_ready is true |
failed | failed | Terminal |
expired | No equivalent | Not listed in the Sume status path |
cancelling / cancelled | canceled | One L; cancel works only before generation starts |
How does my client know a Sume job is done?
Do not match status strings alone. In async mode, poll status_url until terminal is true, then GET result_url once result_ready is true. Read terminal and result_ready off the envelope. A 2xx on submit means the job exists, not that it finished.
Does queued mean something went wrong?
No. Concurrency is a dispatch limit, not a submit limit: a workspace at its concurrency limit can still accept jobs as queued while queue capacity remains. Treat queued like a wait, not an error. If you only accept OpenRouter's spelling, add canceled to your set; the same one-L trap appears in OpenRouter video statuses vs Sume.
Sources
Related posts
More in Developers
- OpenRouter errors after HTTP 200 vs Sume: 2xx means the job exists
OpenRouter can send an error as an SSE event after a 200. Sume has no SSE transport: a 2xx means the job exists, and failures show up on the job record.
- OpenRouter /images/models supported_parameters vs Sume
How to read supported_parameters enum and range descriptors before sending an image request, and what Sume does with a parameter a model does not list.
- OpenRouter eu. and us. base URLs vs Sume's single API host
OpenRouter added us. and eu. in-region base URLs on 2026-09-09. Sume documents one host, api.sume.com, and no region-pinned base URL or ZDR toggle.
- OpenRouter video webhooks vs Sume callback_url, signing, retries
OpenRouter's video guide points to a webhooks cookbook. On Sume, pass an HTTPS callback_url, verify x-sume-webhook-signature, retry with Idempotency-Key.
Written by Sume