Sora shutdown lesson: run a one-hour video vendor exit drill
OpenAI discontinued the Sora API on 2026-09-24. Rehearse losing a video vendor: swap the model id, rerun five prompts, and record what broke.

Run a vendor exit drill once a quarter: pick five real prompts, swap the model id in your config, rerun them, and write down what broke. One hour is enough. The reason is concrete: The Decoder reports OpenAI's Sora app closing in April 2026 and the API being discontinued on 2026-09-24, with users told to download their content.
A drill turns that kind of notice into a checklist you have already tested. The vendor facts are from The Decoder (read 2026-10-02); Sume facts are from its video docs. This is a planning method, not a statement about any vendor's plans.
What do I swap in the drill?
On Sume the model is a field in the request body, and ids are bare catalog ids such as seedance-2, with no provider prefix. Change that one value in config, keep the prompts, and note every request that Sume rejects. Typical breaks are a duration outside the new model's range, an aspect ratio it lacks, and a reference type it does not accept.
What should the drill record?
Fill a small table, one row per prompt. The goal is a known fallback, not a quality ranking.
| Prompt | Old model id | New model id | What broke | Fix |
|---|---|---|---|---|
| Product on desk, 9:16 | (your current id) | (fallback id) | (for example, duration out of range) | (for example, set duration to 5) |
| Two-shot dialogue clip | (your current id) | (fallback id) | (for example, no audio reference) | (for example, pick another id) |
What about files I already made?
Download finished clips while the vendor still serves them. The Decoder reports that users had to download content before the shutdown, and a download takes minutes where a rebuild takes days. On Sume, finished video is fetched from the job's content URL with your API key.
How do I keep the drill cheap?
Use short clips at the lowest resolution the candidate model offers, and pick the fallback from the catalog rather than a launch post. Read supported_durations and pricing_skus first. Rerun the drill after any vendor notice, and keep the results next to your config so the swap is a diff, not a project.
Sources
Related posts
More in Developers
- soundtrack_shorter_than_spine: loop the music bed in Timeline
Timeline warns soundtrack_shorter_than_spine when the music bed is shorter than the audio. Set soundtrack.loop to true; gain, fade and duck defaults inside.
- SQS FIFO 5-minute dedup vs a Sume Idempotency-Key: which wins?
SQS FIFO dedupes for only 5 minutes. A Sume Idempotency-Key covers the create call itself, so use both when a worker can retry after the window.
- StepAudio 3 Music preview is free, then retired: keep your API stable
stepaudio-3-music-preview is free for a limited time, then retired for a paid version. How to keep a music integration stable, and which Sume ids stay put.
- Stripe wants enabled_events trimmed; Sume sends only terminal events
Stripe advises subscribing only to needed event types. Sume sends only terminal job and run events, with the URL set on each request. Here is the mapping.
Written by Sume