Lost a Sume video job id? Recover and download it with the CLI

A restart or timeout does not lose a Sume job. Use sume jobs list, status, watch and download to recover the clip without paying for a second generation.

4 min readSume
All posts

How do I get my video back after my script crashed?

Do not submit again. The job exists and is still running or finished. List your recent jobs with sume jobs list, read one with sume jobs status, wait with sume jobs watch, and write the media to disk with sume jobs download <job_id> --output-dir ./out.

These helpers work for jobs you created through the Developer API, not only for jobs submitted from the CLI. The usual pattern is to submit from your code and recover from the terminal.

The recovery commands

Add --agent --json to the reading commands when a script or an agent will parse the output.

sume jobs recovery commands (docs.sume.com, read 2026-10-06)
CommandDoesSpends credits?
sume jobs listShows your recent jobsNo
sume jobs status <id>Current state of one jobNo
sume jobs events <id>Public timeline snapshotNo
sume jobs watch <id>Polls until terminal or timeoutNo
sume jobs download <id> --output-dir ./outWrites completed media to diskNo
sume jobs cancel <id> --confirm-submitCancels before generation startsStops further spend

A recovery session

Run sume auth status first: a key from a different workspace or member cannot see the job, and the API answers with a 404 rather than a permission error. An API key reads only the jobs its own member created.

# 1. confirm which key and workspace the CLI is using
sume auth status
sume balance

# 2. find the job you lost
sume jobs list --agent --json | head -c 1200

# 3. follow it (replace with your job id)
JOB=job_replace_me
sume jobs status "$JOB" --agent --json
sume jobs watch "$JOB"

# 4. save the finished media
sume jobs download "$JOB" --output-dir ./out
ls -l ./out

Stop it from happening again

Write the job id to a file or a database row the moment the submit returns, and send an Idempotency-Key with every submit so a retry replays the job instead of starting another. If the job has not started and you no longer want it, sume jobs cancel <id> --confirm-submit works only before generation begins. After that it answers 409 job_generation_already_started and the job completes and bills.

If jobs watch stops before the job ends, run sume jobs status to read the current state, then watch again. Reading state never starts new work.

The docs are explicit on one point: after a restart or a timeout, do not submit paid generation again. Check the job first. A job that is still queued or running will finish and bill whether or not anything is watching it, so the only decision left is whether to download the result or, before generation starts, cancel it.

Keep the downloaded files next to the job id, for example in a folder named after it, so a later run can see that the work is already done and skip the download.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume