Debug a migrated video pipeline with Sume job events

When a replaced Sora pipeline stalls, read GET /v1/jobs/{id}/events: created, queued, started, completed or failed, and webhook delivery in one timeline.

5 min readSume
All posts

When a migrated video pipeline hangs, read the job's event list before you guess. The jobs guide says GET /v1/jobs/{id}/events gives a public timeline for debugging and recovery: job.created, job.queued, job.started, generation.submitted, job.completed, job.failed, job.canceled and webhook.delivery. The pattern of those events tells you whether the problem is capacity, the render, or your receiver.

Read the timeline like a checklist

Each missing step points at a different cause.

What the event pattern means (read 2026-10-04)
You seeMeaningNext step
job.created, job.queued, nothing elseWaiting for a processing slotCheck generation_limits; not a failure
job.started, no terminal eventRender in progressKeep polling; do not resubmit
job.completed, webhook.delivery failingRender finished, your endpoint is the problemFix the receiver, then redeliver
job.failedPublic error on the jobRead the error category
No events for your idWrong key or workspaceCheck key ownership; jobs are member-scoped

The webhook leg

A job can be done while the callback is not. Sume sends up to 10 attempts, 30 seconds apart by default, with a 10 second timeout, per the webhooks guide. Delivery status is pending, delivering, delivered, retrying, failed or exhausted, and the attempt count is visible on the job object. After attempts are exhausted, POST /v1/jobs/{job_id}/webhook/redeliver re-sends the real terminal event with a fresh signature.

A small diagnostic habit

Log the job id at submit, and make support tooling accept a job id and print its status and events in one view. Store request_id from error responses too. Events never expose raw provider task ids or URLs, so what you read is safe to paste into a ticket, apart from your own signed URLs and keys.

What events cannot tell you

Sume exposes queue counts and capacity, not a per-job queue position or ETA, as the admission guide notes. Events are a pull snapshot, not a stream; there is no SSE or WebSocket transport. Poll them on demand when debugging, not in a tight loop.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume