Sora 2 API: No Webhook Received for Moderation-Blocked Video Requests

Hey everyone,

We’re using the video generation API fully via webhooks (we don’t poll the API manually).

For most video generations — including ones that fail — we receive a webhook callback as expected.

However, for some requests that are blocked by moderation, we don’t receive any webhook call at all.

Looking at the GET /v1/videos/ responses afterward:

:white_check_mark: (Webhook received)

{
  "id": <ID>,
  "object": "video",
  "status": "failed",
  "error": null,
  "progress": 99
}

:cross_mark: (No webhook received)

{
  "id": <ID>,
  "object": "video",
  "status": "failed",
  "error": {
    "code": "moderation_blocked",
    "message": "Your request was blocked by our moderation system."
  },
  "progress": 0
}

It looks like when the moderation block occurs very early in the processing flow, the webhook might not be triggered.

Could someone from OpenAI confirm whether this is expected behavior or a bug?

Specifically:

  1. Are moderation-blocked requests supposed to trigger webhook events?

  2. If not, is there a recommended way to detect such moderation failures reliably without polling /v1/videos?

  3. We are using video.failed and video.completed webhooks, do we need to add anything else?

Thanks in advance — we’re trying to make sure all video outcomes (including moderation failures) are handled consistently via webhooks.

I am also coming across this issue. Super annoying! Will this be fixed soon?

I am having the same issue, so annoying because I can’t notify my users when a video generation has failed due to moderation. Users assume my system is broken.

I got the same issue as well,
did u get any answers ?

Same issue here! I hope it’ll be fixed soon

We have an upcoming PR that should fix this - thank you for the flag!

2 Likes

is there a link to this pr on github and an eta as to when the fix will be pushed out? switched over from veo on our platform and this moderation bug is blocking some progres :frowning:

I also found cases where it gets stuck in progress: 99 for ageeeees before hitting error or moderation.