Sora 2 API charges money on failed run at 100% progress

Hello,

Was wondering if anyone runs into the same issue with the new Sora 2 API in which the request failed at 100 progress, yet still charges money?

Here’s the details from the video.list()

    {
      "id": "video_68e482d165c481918c06309f2791a1b00f353fccf1b961dc",
      "object": "video",
      "created_at": 1759806161,
      "status": "failed",
      "completed_at": null,
      "error": null,
      "expires_at": null,
      "model": "sora-2",
      "progress": 100,
      "remixed_from_video_id": null,
      "seconds": "12",
      "size": "720x1280"
    },
    {
      "id": "video_68e482093ac48191b541460e99f084f1076ec67fcb862598",
      "object": "video",
      "created_at": 1759805961,
      "status": "failed",
      "completed_at": null,
      "error": null,
      "expires_at": null,
      "model": "sora-2",
      "progress": 100,
      "remixed_from_video_id": null,
      "seconds": "12",
      "size": "720x1280"
    }

the same happened to me. what can we do?

Same here, status failed at 100% but still charged:


Video(id=‘video_68e4ed9f675881919bbe49aed3c5517d07415f16b9dc3b9e’, completed_at=None, created_at=1759833503, error=None, expires_at=None, model=‘sora-2-pro’, object=‘video’, progress=100, remixed_from_video_id=None, seconds=‘8’, size=‘1792x1024’, status=‘failed’)

Same here, using Sora Pro 2 at “high quality” setting (1792x1024), a 8s generation failed at 87% of completion and… voiloà 4$ pulverized.

And it even was the first attempt I did via API, so, unless they can refund I’m not gonna try again.

I have the same issue. I query the status every 30 sec. I can see the progress shows 10, then 40, then back to 10. Then stuck at 10 forever. (Confirmed the request is billed)

same here - first try, charged, stuck on in_progress for hours

Same, on top of that some stuck at in_progress…. this is so scammy from them. And 0 feedback fomr them as well…. I dont know. I feel like Open AI are getting worse and worse…..

How can we go about requesting a refund?

Yes, I want a refund too! Anyone know how to reclaim it?

Nothing? No answer at all? Extremely disappointed…

To make contact with OpenAI about your account, you’d have to send a message via “help” in the platform site. Then make a clear request that is actually framed in an actionable way: the response IDs that failed, the costs incurred, that you want replacement credits applied (vs a “refund”, which they can’t do) and need a human from the support staff to do it. Not wishy-washy or that would provoke a bot tutorial, something that must be denied by a person.


I’ve got $20 in GPT fun bucks to spend soon. Got a prompt you want run for an output video that I’d share with everyone as some sort of relief against adversity - seeing if the model is still failing for your inputs?

VIDEOPROMPT = "A video that is a cinematic opening scene, with orchestral medieval music. A single tracking shot, flying through a magical enchanted evergreen forest awash in moonlight and neon glows from flying pixies and fairies. The camera navigates through turns, revealing and passing by different fantastic features, such as a glistening stream awash in moonlight, a little pixie village built into the sides of trees with activity, all the while with glowing purples and greens of fireflies and motes illuminating the trees from below."
VIDEOSIZE = "1280x720"     # 720x1280, 1280x720, (pro only: 1024x1792, 1792x1024)
2025-10-10 03:28:59,019 INFO Creating video job
2025-10-10 03:29:00,356 INFO HTTP Request: POST https://api.openai.com/v1/videos "HTTP/2 200 OK"
2025-10-10 03:29:00,380 INFO Job id: video_xxxxxxxxxxxx
2025-10-10 03:29:00,382 INFO Initial wait 120.0 seconds before polling
2025-10-10 03:31:01,192 INFO HTTP Request: GET https://api.openai.com/v1/videos/video_xxxxxxxxxxxx "HTTP/2 200 OK"
2025-10-10 03:31:01,195 INFO [  120.8s] poll #1 status=in_progress progress=90%
2025-10-10 03:31:31,544 INFO HTTP Request: GET https://api.openai.com/v1/videos/video_xxxxxxxxxxxx "HTTP/2 200 OK"
2025-10-10 03:31:31,547 INFO [  151.2s] poll #2 status=in_progress progress=99%
2025-10-10 03:32:02,256 INFO HTTP Request: GET https://api.openai.com/v1/videos/video_xxxxxxxxxxxx "HTTP/2 200 OK"
2025-10-10 03:32:02,260 INFO [  181.9s] poll #3 status=completed progress=100%
2025-10-10 03:32:02,261 INFO Terminal status: completed
2025-10-10 03:32:02,535 INFO HTTP Request: GET https://api.openai.com/v1/videos/video_xxxxxxxxxxxx/content?variant=thumbnail "HTTP/2 200 OK"
2025-10-10 03:32:02,544 INFO Saved fairy-scene-thumb.webp (image/webp)
2025-10-10 03:32:03,067 INFO HTTP Request: GET https://api.openai.com/v1/videos/video_xxxxxxxxxxxx/content?variant=spritesheet "HTTP/2 200 OK"
2025-10-10 03:32:03,124 INFO Saved fairy-scene-sheet.jpg (image/jpeg)
2025-10-10 03:32:05,643 INFO HTTP Request: GET https://api.openai.com/v1/videos/video_xxxxxxxxxxxx/content "HTTP/2 200 OK"
2025-10-10 03:32:06,171 INFO Saved fairy-scene.mp4 (video/mp4)


Hi everyone,

Our sincere apologies for incurring charges during these failed runs. Please do write into support@openai.com to ask for a refund, and post here if you run into any issues getting in touch with us.

Thank you for your understanding!

This came directly from Open AI Support via email response

”As per our Service Credit Terms, credits are consumed regardless of whether a request succeeds or fails. This is because the system allocates resources to process the request, even if the output is not completed. Unfortunately, this means that the $0.80 credit for the video request you mentioned is non-refundable, as the credit was already consumed during the attempt.”

So basically, you paid, we didn’t deliver a result, tough luck. This is an odd model. How hard is it to give a service credit for failed videos? It failed due to something on OpenAI’s job processing etc., so make it right.

@JoeTalksAI Thanks for following up!

I agree that this run shouldn’t have been charged since it didn’t produce a usable result. The earlier response reflected our general policy, but I’ve added a few credits back to your account to make up for the failed run and replied to your Support email directly.

Let us know if you have any other questions!

Thanks, appreciate the swift response and customer service!

Closing this topic because we have several conversations covering the same issue.
Please follow-up in the topic linked below.

Thank you for your understanding!