预览提示 · 本站为上线前预览:模型清单与费率以正式上线公告为准

TROUBLESHOOTING · ERROR FAQ

Sora 2 API Shut Down (2026-09-24): Errors You'll See & Migration Paths

OpenAI's Sora 2 API stopped serving on 2026-09-24. Existing integrations didn't get a graceful sunset — they got errors, and the error you see depends on where in the pipeline your code touches the service. This page identifies the failure signatures, lays out three migration paths by use case (volume generation, native-audio storytelling, multi-shot consistency), shows the code diff — smaller than most teams expect — and closes with a parameter-by-parameter comparison for the planning doc. The in-site deep-dive with worked migration examples lives at Sora 2 API alternatives & migration.

Shutdown timeline and what calls return now

The deprecation was announced with the 2026-09-24 cutoff; after that date, requests to the video endpoints fail. Signatures in the wild: HTTP 404 with a model-not-found body on the model list; 400/403 "model_decommissioned"-style codes on submit; and for clients with cached task IDs, polls returning not-found rather than a task state. If your integration suddenly logs one of these, it is not your key, your quota, or your parameters — the endpoint itself is gone.

Migration paths: pick by what Sora was doing for you

  • High-volume short clips → Kling 3.0: strong physics and large motion at 5-second tiers; the workhorse for daily-volume pipelines.
  • Native audio + storytelling → Veo 3.1: dialogue and sound baked into the 8-second output; the closest fit for narrative work that leaned on Sora's audio.
  • Multi-shot consistency → Seedance 2.5: stable character continuity across shots; built for storyboards and serialized content.

The code migration diff

On a unified gateway the migration is a model-string change — the request shape (submit, poll, webhook) is shared across models, so auth and workflow code survive untouched. The essence, in Python:

diff
- task = create_video(model="sora-2", prompt=prompt)
+ task = create_video(model="kling-3.0",   # or "veo-3.1" / "seedance-2.5"
+                     prompt=prompt)

  # auth, polling, webhook handling: unchanged
  # response parsing: unchanged (same task/output shape)

Parameter and capability comparison

  • Duration per clip: Kling 3.0 5s (audio optional), Veo 3.1 8s with audio, Seedance 2.5 5s at 480p today.
  • Audio: native on Veo 3.1; optional track on Kling 3.0; plan a separate audio pass elsewhere for Seedance 2.5.
  • Input modes: Kling 3.0 t2v and i2v; Veo 3.1 text-to-video; Seedance 2.5 multi-shot with character consistency.
  • Failure policy: failed tasks are not charged across all three.

Migration-week checklist

Audit where the literal string "sora-2" appears in config, fixtures, and docs — stale references outlive the migration and confuse on-call later. Re-run your acceptance suite against the new model with a handful of real prompts; motion characteristics differ between models and a prompt tuned for one may need a light rewrite for another. Then update the quickstart-based smoke test to pin the new model name. Full worked examples: the migration page.

Quick answers

Is the Sora 2 API coming back?
No. The endpoint was decommissioned on 2026-09-24; calls fail permanently. Any future OpenAI video offering would be a new model with new integration work, not a reactivation.
What's the drop-in replacement for Sora 2 in an existing pipeline?
On a unified gateway it's a model-string change: swap "sora-2" for "kling-3.0", "veo-3.1", or "seedance-2.5" in the submit call. Auth, polling, and webhook code carry over unchanged.
Which replacement is closest to Sora 2's output?
Depends on what you used it for: narrative work with audio maps to Veo 3.1 (native soundtrack, 8s clips); volume generation maps to Kling 3.0 (5s tiers, fast turnaround); multi-shot continuity maps to Seedance 2.5.
已复制