Sora feature retired: what to tell users and what to flip
Your Sora-powered feature is gone. How to word the message, map Sume job states to UI copy, and flip one backend flag to Sume video without a rewrite.

If your product had a Sora-powered feature, tell users plainly that the engine changed and move the backend behind a flag. OpenAI's deprecations page lists the Sora 2 models and the Videos API with a shutdown date of 2026-09-24 and no recommended replacement, so nothing will fix itself. Keep the feature name, swap the engine, and let Sume's video generation API return the clips. Be honest in the UI: the look will differ, and a failed job is a normal outcome to message.
What actually ended
Two separate things closed. The consumer Sora app and web experience closed on 2026-04-26, and the API followed. A news report on the two-stage plan, The Decoder's write-up, says users were urged to download content before the cutoffs and that user data is deleted once all deadlines pass. If your users stored clips only in Sora, that is a separate message from the feature change.
| What | Date | Source |
|---|---|---|
| Sora app and web closed | 2026-04-26 | The Decoder report |
| Sora 2 models and Videos API shutdown | 2026-09-24 | OpenAI deprecations page |
| Recommended replacement listed by OpenAI | None listed | OpenAI deprecations page |
Say it in three sentences
A short notice beats a long apology. Say what changed (the video engine behind the feature), what stays (your prompts, aspect choices, saved projects), and what may differ (motion, style, clip length limits). Do not promise a Sora look. Sume's catalog is a different set of models, and the sume/auto option deliberately does not disclose which family served a request, so you cannot promise a specific house style unless you pin a model id.
Map job states to the copy your UI needs
Sume jobs are asynchronous. The jobs guide defines the statuses, and a queued job is a normal accepted state, not a failure. Put each one on screen in words a customer understands.
| Sume status | Terminal | Suggested copy |
|---|---|---|
| queued | No | Waiting for a free render slot |
| processing | No | Rendering your clip |
| completed | Yes | Ready, with the download button |
| failed | Yes | Could not render; try again or change the prompt |
| canceled | Yes | Cancelled |
Flip the backend, not the product
Wrap video creation in one function and choose the engine with a flag. In the Sume branch, submit POST /v1/videos with a catalog model id, store the returned job id, and show progress from the status endpoint. Ramp the flag by account, not by request, so one customer never sees two engines in one project. If a job fails, the core workflow docs say usage is refunded on failure or cancellation before capture, so your copy can say a failed render is not charged without inventing a refund policy.
Finally, keep the old Sora-era records. Existing projects that reference Sora video ids still need their stored mp4s; a regenerated clip is a new job on the new engine, not a recovery of the old one.
Sources
Related posts
More in Use cases
- Special ad categories: no age targeting, one creative for all
Meta special ad categories drop age, gender and ZIP targeting. Build one broad creative, then queue message variants as Sume bulk runs instead of audiences.
- SB video up to 45 s needs two Sume clips
Amazon Sponsored Brands video can run up to 45 seconds. One Sume seedance-2.5 clip tops out at 30 seconds, so join two clips in Timeline.
- Spotify's AI Persona badge: labeling an AI music video channel
Spotify will badge AI Persona profiles and skip them in recommendations. What a video channel with generated audio should label and keep.
- Spotify video podcast bitrate: 25 Mbit/s at 1080p, 35 at 4K
Spotify video podcasts: 25 Mbit/s CBR for 1080p, 35 for 4K, 16:9, under 10 GB and 4 hours recommended. Sume Timeline assembles up to 1800 s of audio per render.
Written by Sume