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.

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.
| Command | Does | Spends credits? |
|---|---|---|
| sume jobs list | Shows your recent jobs | No |
| sume jobs status <id> | Current state of one job | No |
| sume jobs events <id> | Public timeline snapshot | No |
| sume jobs watch <id> | Polls until terminal or timeout | No |
| sume jobs download <id> --output-dir ./out | Writes completed media to disk | No |
| sume jobs cancel <id> --confirm-submit | Cancels before generation starts | Stops 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 ./outStop 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
- Make an AI voiceover louder: generation_config volume and a peak check
Sume TTS takes generation_config.volume from 0.5 to 2. Raise it, then check the WAV peak in Python so you never ship a clipped voiceover.
- MATLAB webwrite and weboptions: generate an AI video and save the MP4
A MATLAB script posts a Wan 3.0 job to Sume with webwrite, polls the job status with webread and saves the finished clip with websave.
- MCP server for video editing: which tools can an agent call?
An agent can trim, strip audio, filter and compose clips through Sume's remote MCP endpoint. Here are the tool names, order of calls, and what each step costs.
- MiniMax H3 on Sume: 9 images, 3 videos, 3 audio, 12 in total check
On Sume, minimax-h3 and minimax-h3-max take at most 9 reference images, 3 videos and 3 audio clips, 12 in all, and audio cannot be alone. Check it in Python.
Written by Sume